Apache htaccess-重写第二个问题

Apache htaccess-重写第二个问题,apache,.htaccess,Apache,.htaccess,我有一个apache的htacess文件不能正常工作 我有一个默认的cacch all,它捕获所有请求,但是它仍然捕获上面匹配的URL(ajax/*)。我认为匹配不包含ajax的URL的条件会阻止它,但事实并非如此 RewriteRule ^ajax/(.*)$ process_lite.php [QSA,L] RewriteRule ^resources/(.*)$ resources/$1 [L] RewriteCond %{REQUEST_URI} !\.(css|jpg|js|gif|

我有一个apache的htacess文件不能正常工作

我有一个默认的cacch all,它捕获所有请求,但是它仍然捕获上面匹配的URL(ajax/*)。我认为匹配不包含ajax的URL的条件会阻止它,但事实并非如此

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]

有人能帮我吗?

这可能是因为第一条规则匹配
/ajax/
请求并将其重写为
/process\u lite.php
,因此
RewriteCond%{REQUEST\u URI}^ajax
不匹配,因为URI现在是process_lite.php。您使用的正则表达式无论如何都不会匹配任何内容,因为REQUEST_URI变量将以前导斜杠开头。您可以尝试将条件更改为:

RewriteCond %{REQUEST_URI} !^/process_lite.php
此外,“资源”规则似乎除了结束重写之外什么都不做,如果这是目标,您可以将其更改为:

RewriteRule ^resources/ - [L]