2010-12-10 48 views
0

我有一個mod_rewrite問題。或者更準確地說,我有一個ISAPI_Rewrite問題,它是IIS的mod_rewrite克隆。特別是,在IIS 7上運行的ISAPI_Rewrite v3。它的目標是與mod_rewrite的行爲相同,所以我希望我的問題也適用於mod_rewrite。使用mod_rewrite清理IIS中的URL

我的問題歸結爲:我有一個腳本bar.php,我想通過網址foo訪問。我首先將foo改寫爲bar。然後嘗試將乾淨的URL轉換爲真實的文件名。

RewriteRule ^foo$ bar 

RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule .* $0.php 

RewriteCond失敗,因爲${REQUEST_FILENAME}仍然說「富」,而不是「欄」。它在第一次重寫後沒有更新。

我該如何做這項工作?我可以通過簡單地寫RewriteRule ^foo$ bar.php來解決這個問題。但我強烈希望將URL重映射規則與文件擴展名規則分開。

回答

0

初步的答案...

RewriteCond %{DOCUMENT_ROOT}/$0.php -f 

通過使用$0我可以訪問最新的重寫URL,這讓我很開心。但我必須添加%{DOCUMENT_ROOT}將其轉換爲文件名,這讓我很難過。一個kludge的位。

+0

好吧,這是我正在使用,除了任何更好的答案! – 2011-01-21 21:14:35