mod_rewrite: URLs mit / (Slash) erzeugen 404, RewriteRule greift nicht Frage mod_rewrite: URLs mit / (Slash) erzeugen 404, RewriteRule greift nicht zu Favoriten hinzufügen

Daumen hoch 0 Daumen runter

Tach zusammen,

bei einem Projekt habe ich folgende, allgemein RewriteRule im Einsatz:

RewriteRule ^(.*)\.html$ index.php?page=$1 [L]

Jede .html-Anfrage wird also an mein php-Script durchgereicht und dort abgearbeitet. So weit, so gut. Zumindest, solange die URLs kein / enthalten und damit quasi ein Verzeichnis gemeint sein könnte.

Allerdings habe ich das Problem, dass sobald die URLs ein / enthalten, die Rule nicht mehr greift und mir mein Server einen 404 zurück gibt. URLs wie

http://domain.tld/meine/seite.html

funktionieren leider nicht!

Gibt es ein Flag oder Ähniches, dass man setzen muss, damit die Rule auch dann greift und die Anfrage an mein Script durchgereicht wird?

Habe ich einen Denkfehler?

Antworten


Diese Antwort als GUT bewerten 1 Diese Antwort als SCHLECHT bewerten

Bei dem CMS Drupal wird vor dem Rewrite immer eine Prüfung gemacht, ob die angeforderte URL als Datei bzw. Ordner existiert und erst danach eine Umleitung versucht. Der Code dafür sieht folgendermaßen aus:

   RewriteEngine on
   RewriteBase /
   RewriteCond %{REQUEST_FILENAME} !-f
   RewriteCond %{REQUEST_FILENAME} !-d
   RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

Eventuell hilft Dir das bei Deinem Problem weiter.

Wordpress macht das ja genau so. Ich bin mir allerdings nicht sicher, ob das das Problem löst ... eigentlich müsste das Verhalten identisch sein. Ich werd's mal testen und im Erfolgsfall hier berichten.

tbone am 22.06.2012
Diese Antwort als GUT bewerten 0 Diese Antwort als SCHLECHT bewerten

einfach ^(.+)/(.+)$ index.php?q=$2 hinzufügen.

Werd' ich direkt mal testen!

tbone am 02.07.2012

Deine Antwort

Registrierter User Bereits registriert? Bitte logge dich vor dem Antworten ein.

Deine Daten