Мод переписать - переписать все, кроме - PullRequest
0 голосов
/ 10 ноября 2011

У меня есть эта строка кода:

RewriteRule ^(.*)/$ allcities.php?state=$1 [QSA,L]

Как я могу изменить его, чтобы он не переписывал новый каталог, который я создал, например, "admin". Как в настоящее время это также переписывается.

Ответы [ 2 ]

3 голосов
/ 10 ноября 2011

Для этого можно использовать RewriteCond:

RewriteCond %{REQUEST_URI} !^/admin
RewriteRule ^(.*)/$ allcities.php?state=$1 [QSA,L]

Обратите внимание на восклицательный знак перед регулярным выражением на RewriteCond.Это заставляет регулярное выражение возвращать свое значение.Таким образом, в этом случае условие истинно, если URI запроса не начинается с /admin.

Для получения дополнительной информации см. Документацию mod_rewrite .

0 голосов
/ 10 ноября 2011

Правила перезаписи обрабатываются в порядке их получения.Вам понадобится обработчик, который будет направлять в существующий каталог до обработки этого правила.Например:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ allcities.php?state=$1 [QSA,L]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...