htaccess - переписать второй выпуск - PullRequest
0 голосов
/ 13 января 2012

У меня есть файл htacess для apache, который не работает должным образом.

У меня есть cactch-all по умолчанию, который захватывает все запросы, однако он все еще перехватывает соответствующий URL-адрес над ним (ajax / *).Я думал, что условие соответствия URL-адресов, не содержащих ajax, остановит его, но это не так.

RewriteRule ^ajax/(.*)$ process_lite.php [QSA,L]

RewriteRule ^resources/(.*)$ resources/$1 [L]
RewriteCond %{REQUEST_URI} !\.(css|jpg|js|gif|png)$
RewriteCond %{REQUEST_URI} !^ajax
RewriteRule ^(.*)$ process.php [QSA,L]

Может ли кто-нибудь мне помочь?

1 Ответ

0 голосов
/ 13 января 2012

Вероятно, это связано с тем, что первое правило соответствует /ajax/ запросам и переписывает его в /process_lite.php, поэтому RewriteCond %{REQUEST_URI} !^ajax не совпадает, поскольку URI теперь является process_lite.php. Используемое вами регулярное выражение в любом случае не будет совпадать, потому что переменная REQUEST_URI будет начинаться с косой черты. Вы можете попробовать изменить условие на:

RewriteCond %{REQUEST_URI} !^/process_lite.php

Кроме того, правило "ресурсов", похоже, ничего не делает, кроме завершения перезаписи, вы можете изменить его на это, если это цель:

RewriteRule ^resources/ - [L]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...