htaccess rewrite добавляет "index.php", когда я добавляю косую черту в адрес - PullRequest
4 голосов
/ 24 февраля 2012

Мой htaccess переписывает по следующим правилам:

RewriteRule ^([a-zA-Z0-9\-]*)/([0-9]*)/([a-zA-Z0-9\-_]*)$ /content.php?a=$1&b=$2&c=$3
RewriteRule ^([a-zA-Z0-9\-]*)/([0-9]*)$ /content.php?a=$1&b=$2
RewriteRule ^([a-zA-Z0-9\-]*)$ /index.php?a=$1

, который прекрасно работает, когда я захожу на "mydomain.com/nameofpage"

, но когда я добавляю трейлингкосая черта "mydomain.com/nameofpage/" браузер добавляет "index.php" до конца и 404 "я".

Мысли?

Спасибо!

РЕДАКТИРОВАТЬ,Понял это .

похоже, что мое использование * в первых двух переписываниях превзошло мое последнее правило ... Короче говоря, вот код, который работает правильно (изменен * на + втри места):

RewriteRule ^([a-zA-Z0-9\-]*)/([0-9]+)/([a-zA-Z0-9\-_]+)$ /content.php?a=$1&b=$2&c=$3 
RewriteRule ^([a-zA-Z0-9\-]*)/([0-9]+)$ /content.php?a=$1&b=$2
RewriteRule ^([a-zA-Z0-9\-]*)$ /index.php?a=$1

1 Ответ

0 голосов
/ 30 марта 2012

Разобрался - похоже, мое использование * в первых двух переписываниях превзошло мое последнее правило ... Короче говоря, вот код, который работает правильно (изменен * на + в трех местах):

RewriteRule ^([a-zA-Z0-9\-]*)/([0-9]+)/([a-zA-Z0-9\-_]+)$ /content.php?a=$1&b=$2&c=$3 RewriteRule ^([a-zA-Z0-9\-]*)/([0-9]+)$ /content.php?a=$1&b=$2 RewriteRule ^([a-zA-Z0-9\-]*)$ /index.php?a=$1

...