Проблема .htaccess RewriteRule - PullRequest
       4

Проблема .htaccess RewriteRule

0 голосов
/ 19 января 2010

это rewriterule только переписать level.php и при попытке localhost / a / b / 115-aaa.html отправлять все запросы на level.php, но localhost / a / b / это работа

почему?

RewriteEngine On
RewriteRule ^(.*)\/(.*)-(.*).html$ page.php?page=$1&a=$2&b=$3 [QSA]
RewriteRule ^(.*)$ level.php?q=$1 [QSA]

1 Ответ

0 голосов
/ 19 января 2010

Если ваше первое правило соответствует, оно переходит к page.php? Page = foo & a = bar & b = 123.Это будет совпадать во второй раз с вашими правилами и со вторым совпадением правил.Вы можете избежать этого, добавив следующие строки в ваш файл .htacces.

RewriteEngine On
RewriteRule ^([a-zA-Z0-9]+)\/([a-zA-Z0-9]+)\/([0-9]+)\-([a-zA-Z0-9]+)\.html$ page.php?page=$1&a=$2&b=$3 [L]
#Prevent the last rule to be applied to page.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ level.php?q=$1 [L]
...