2012-01-13 126 views
0

我有一個Apache的htacess文件無法正常工作。htaccess - rewritecond問題

我有一個默認的cactch - 所有抓取所有請求,但它仍然捕捉它上面匹配的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] 

有人可以幫我嗎?

回答

0

這可能是因爲第一條規則匹配/ajax/請求並將其重寫爲/process_lite.php,因此RewriteCond %{REQUEST_URI} !^ajax不匹配,因爲URI現在是process_lite.php。您使用的正則表達式不會與任何東西匹配,因爲REQUEST_URI變量將以一個前導斜槓開始。您可以嘗試更改條件:

RewriteCond %{REQUEST_URI} !^/process_lite.php 

此外,「資源」的規則似乎並沒有這樣做,除了年底重寫任何東西,你可以將其更改爲這個如果是這樣的目標:

RewriteRule ^resources/ - [L] 
+0

感謝您幫助我解決我的問題:) – Joe 2012-01-13 19:21:06