2012-09-27 70 views
0

我有一些簡單的RewriteRules將所有路徑變量重定向到/index.php。但現在我正在尋找所有/img/(.*)網址的例外。如何將所有url請求重定向到index.php/path /變量,除了那些以img /?開頭的變量?

這是一段代碼。請指教。

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] 
RewriteRule ^(.*)$ http://%1/$1 [R=301,L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule (.*) index.php/$1 [L] 

我試着在最後一個catchall行上面加上RewriteRule ^img/(.*) img/index.php/$1 [L],但它不起作用。

我之後的結果是這樣的:

url  --> script/path variables 
==================================== 
/abc/def --> /index.php/abc/def 
/img/abc --> /img/index.php/abc 

你能指出我朝着正確的方向嗎?

回答

1

您需要添加它不是最後那個包羅萬象線之上,但留下由包羅萬象所需的條件,同樣重複他們自己/img/路由:

RewriteEngine On 

RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] 
RewriteRule ^(.*)$ http://%1/$1 [R=301,L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^img/(.*) img/index.php/$1 [L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule (.*) index.php/$1 [L] 
相關問題