RewriteEngine on dupliziert Verweise
4.30hStefan
- webserver
Hallo,
ich habe die .htaccess
mit RewriteEngine on
geschmückt um die PHP Seite ein wenig suchmaschinenfreundlicher zu gestalten.
sprich:
RewriteCond %{REQUEST_URI} start/(.*)$
und
RewriteRule start/(.*)$ /start.php?vari=$1
nun läuft das zwar, allerdings nur beim ersten aufruf,
danach sind sämtlich Verweise dupliziert, z.b. aus
http://www.meineseite.de/start/willkommen wird zu http://www.meineseite.de/start/start/willkommen.
drücke ich nocheinmal drauf wird es zu:
http://www.meineseite.de/start/start/start/willkommen.
Ich vermute , das liegt am Refresh der Site, (ich übergebe die Parameter and die selbe Seite)
Kann sich jemand darauf ein Reim machen?
Liegt das am Refreshing?
Kann man das irgendwie umgehen?
Habe ich irgendetwas anders übersehen?
Wäre sehr dankbar für Anregungen, komme hier nämlich keinen Millimeter weiter....
mfg
4.30hStefan
Hi,
RewriteCond %{REQUEST_URI} start/(.*)$
und
RewriteRule start/(.*)$ /start.php?vari=$1
als mod_rewrite-Laie würde ich mal sagen, daß da was fehlt.
Versuch doch mal folgendes:
RewriteCond %{REQUEST_URI} ^/start/(.*)$
RewriteRule ^/start/(.*)$ /start.php?vari=$1
Schönen Gruß
Rainer
hi!
RewriteCond %{REQUEST_URI} start/(.*)$
RewriteRule start/(.*)$ /start.php?vari=$1
nun läuft das zwar, allerdings nur beim ersten aufruf, danach sind
sämtlich Verweise dupliziert,
Das liegt nicht an mod_rewrite, sondern an deinem Browser. Vermutlich
gibst du immer nur relative URLs an, und keine absoluten. Zum Bei-
spiel ruft jemand die folgende Seite auf:
/start/
Also die Startseite. Darauf ist ein Link auf "test/". Der Browser
weiß, dass er auf der Seite "/start/" ist und hängt den relativen
Link dahinter, weil er beim Server sowieso nur absolute URLs abfragen
kann. Dann ruft er also folgende Seite auf, wenn du den Link
anklickst:
/start/test/
Wegen des abschließenden Slashs denkt der Browser wieder, dass du
dich in einer neuen Verzeichnisebene befindest. Wenn da jetzt ein
Link zb. auf "info/" ist, dann hängt er den Link hinten an, um wieder
eine absolute URL zu bilden:
/start/test/info/
Und so weiter...
Das Problem ist hoffentlich klar geworden: du kannst mit dieser
mod_rewrite-Methode in den meisten Fällen keine relativen URLs
verwenden, da du zwar immer vom Root-Verzeichnis aus verlinkst, der
Browser sich aus seiner Sicht aber nicht in diesem Verzeichnis
befindet.
Ich hatte vor einiger Zeit das gleiche Problem und als Lösung dafür
einfach alles absolut verlinkt.
bye, Frank!