htaccess - 重写问题

时间:2012-01-13 17:25:27

标签: apache .htaccess

我有一个apta的htacess文件,它无法正常工作。

我有一个默认的cactch-all,它可以抓取所有请求,但是它仍然会捕获它上面的匹配URL(ajax / *)。我认为匹配不包含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 :(得分:0)

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

RewriteCond %{REQUEST_URI} !^/process_lite.php

此外,除了结束重写之外,“资源”规则似乎没有做任何事情,如果这是目标,您可以将其更改为:

RewriteRule ^resources/ - [L]