2013-05-28 25 views
0

這是我的.htaccess:的.htaccess URL重寫 - 爲特定文件僅例外

Options +FollowSymlinks -MultiViews 
RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_URI} !index\.php [NC] 
RewriteCond %{REQUEST_FILENAME} !\.php$ [NC] 
RewriteRule ^([^/]+)/?$ index.php?page=$1 [QSA] 

基本上,如果你輸入/測試,這將很好地工作,如果你去/test.php,它會顯示沒有重寫規則的PHP頁面,這是我僅需要某些頁面的內容。

比方說,有一些頁面(一些),我希望這可以(加載整個.php頁面),但所有其他頁面,我想要的是,如果有人去/聯繫。 PHP,它重定向到/聯繫,到正確的一個。

所以我們來說說「result.php」和「search.php」,我希望它能夠加載整個PHP頁面,但對於其餘的,我希望它重定向到正確的地址(所以/ contact.php =>/contact)。

我該怎麼辦?基本上我需要添加這個RewriteRule(RewriteCond %{REQUEST_FILENAME} !\.php$ [NC])只有幾頁(我會確定我自己),對於其餘的頁面我需要另一個RewriteCond(將所有「test.php」重定向到「測試」)

非常感謝!

回答

0

你可以把所有這些例外,在你第一次的RewriteCond和改變第二的RewriteCond跳過真正的文件和目錄,實際是這樣的:

RewriteCond %{REQUEST_URI} !/(index|result|search)\.php [NC] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^/]+)/?$ /index.php?page=$1 [QSA,L]