Hallo, es ist nicht ganz leicht, im MOD_REWRITE Chaos durchzusehen...
Bitte um Hilfe in dieser Sache.
Folgende htaccess Datei verwende ich:
___________________________________________________________
RewriteEngine on
RewriteBase /
# delete last slash and reload
RewriteRule (.*[^/])/$ /$1 [L,R=301]
# link to index.php if file does not exist
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) /index.php/$1 [QSA] #$_SERVER['PATH_INFO']
___________________________________________________________
@ # delete last slash and reload
Dies, habe ich mal gelesen, soll gut sein gegen doppelten Content
@ # link to index.php if file does not exist
Also der Sinn dahinter ist, dass ich alle Anfragen, die ins Leere führen auf die index.php lenke, und das aufgerufene Script hinten dranhänge, als Parameter. Dieser Parameter wird mittels $_SERVER["PATH_INFO"] vom index.php ausgewertet. Dies habe ich aus einem Blog.
So führt
http://localhost/matlab2 (bleibt in der Adressleiste stehen)
zu
http://localhost/index.php/matlab2
Ob diese Datei existiert, wird aus einer Datenbank abgefragt. Im Fehlerfall wird eine eigene 404 Seite includet.
Nebenbei: alle Pages gehen über die index.php. Im öffentlichen Verzeichnis befindet sich keine andere php Datei.
Jetzt ist es aber so, dass ja ein Nutzer auch
http://localhost/index.php/matlab2
eingeben kann. Und das bleibt in der Adressleiste stehen. Das wäre dann wieder doppelter Content :(
Ich benötige eine Regel, die mir immer /index.php aus dem String entfernt. Ich weiß nicht, wie ich zu der Lösung kommen soll. Normalerweise hangelt man sich ja so vorwärts. Aber ich kann mir ja nicht ausgeben lassen, was die RewriteCond gerade so alles denkt...
Ist irgendwas in dieser Art sinnvoll:
RewriteCond %{REQUEST_FILENAME} ^(.*)index.php(.*)$ [NC]
RewriteRule %1%2 [R=301,L]
?
Für jede Hilfe bin ich dankbar.
Cheers,
Baba