2011-12-07 62 views
0

我正在嘗試使用mod_rewrite創建乾淨的鏈接。我已經得到它把我的網址,這樣的:mod_rewrite重寫所有文件夾

http://www.example.com/index.php?LTKeywords=long-tail-keyword

http://www.example.com/long-tail-keyword/

這正是我想要的。我使用的代碼是:

Options +FollowSymLinks 
RewriteEngine on 
RewriteRule ^(.*)/ index2.php?LTKeywords=$1 

一個問題。

它現在重定向了我的所有文件夾,因此我的/images//css/文件夾中的任何內容都不會顯示出來。有沒有辦法阻止它重寫特定的文件夾?

回答

1

最簡單的方法可能是RewriteCond。你可以用!前綴可指定必不匹配:

RewriteCond %{REQUEST_URI} !^/css 

例如。

你也可能只是想排除這實際上存在的目錄:

RewriteCond %{REQUEST_URI} !-d 

最後,你也可以把你在不同的主機(虛擬主機)靜態內容,避免您的重寫規則一起。

你也可以添加一些更多的RewriteRules來匹配你的CSS等,並使它們實際上不會改變任何東西(重寫/ css到/ css)但是指定L(last)標誌,所以其他規則不會運行。

+0

謝謝你的迴應!當我按照你的建議做了我的500內部服務器錯誤。 – user1086352

+0

@ user1086352:對不起,我首先發布了一個語法錯誤,我認爲*我已經修復了。如果你仍然得到500,請檢查你的Apache錯誤日誌,看看有沒有細節。 – derobert

+0

它工作!謝謝!當我使用第一個建議(並刪除了'^')時,它完美運行。我無法讓第二個人工作,但我並不關心它。 再次感謝! – user1086352