1
我在我的RewriteRule中有一個正則表達式,它目前工作正常。其次,我想測試一下文件(請求被重寫的地方)是否存在。因此,我在我的規則之前放置了一個RewriteCond,但不幸的是,它始終驗證爲false。RewriteCond始終驗證爲false
這是我的正則表達式:
assets/img(.*)/([a-zA-Z0-9-_\.]*)\.([^/]+)\.([a-z]{2,4})
我創造了這個的.htaccess:
RewriteCond assets/img$1/.$2.$4/$3.$4 -s
RewriteRule ^assets/img(.*)/([a-zA-Z0-9-_\.]*)\.([^/]+)\.([a-z]{2,4})$ assets/img$1/.$2.$4/$3.$4 [NC,L,QSA]
RewriteRule ^assets/img(.*)/([a-zA-Z0-9-_\.]*)\.([^/]+)\.([a-z]{2,4})$ assets/img/image.php?path=$1&file=$2.$4&key=$3&ext=$4 [NC,L,QSA]
沒有的RewriteCond,其中改寫位置存在的請求,工作正常。對於那些誰感興趣的話,我的完整的.htaccess被張貼在這裏:http://pastie.org/1293667
假設我正確理解他的意圖,向Jurian的第一個RewriteRule添加一個跳過標誌(跳過1條規則)應該就足夠了。 – outis 2010-10-27 13:04:46
感謝您的回答,這真的很有幫助!不幸的是,我注意到現在第一條規則(重寫到圖像的另一個位置)完全不起作用(例如,當條件和第二條規則被刪除時)。儘管如此,直接請求(請參閱問題)仍然正常工作。有比錯誤標誌更多的錯誤嗎? – 2010-10-27 14:13:32
好的,我發現你的規則不起作用。我使用了mod_vhost_alias,因此DOCUMENT_ROOT不會更改爲正確的值。有關於此的一個錯誤:https://issues.apache.org/bugzilla/show_bug.cgi?id=26052。無論如何,你的答案最終是正確的。 – 2010-12-22 11:37:51