2014-02-26 55 views
0

1/2類似的規則,我有兩個重寫規則:htaccces不是重定向

RewriteRule ^library/(.*)$ market-intelligence/resources/$1 [L,R=301] 
RewriteRule ^library/.*\.pdf$ email/$1 [L,R=301] 

正如人們所看到的,他們是同一目錄中,但第二處理所有的PDF文件。但是,目錄中的任何pdf仍然會導致第一個規則的目標。

難道我做錯了什麼?

回答

1

我做錯了什麼?

是。按順序測試規則並使用[L],第一個匹配規則將觸發並退出掃描。所以訣竅在於從特定的一般到一般的秩序。在這種情況下交換它們。 PDF將被重寫到電子郵件文件夾,其餘的將被重新寫入市場情報/資源。

+0

與此相關的,你看到了什麼毛病.PDF規則?重定向規則相應地起作用,但它將'library/{file} .pdf'重定向到'email/.pdf'而不是'email/file.pdf' – psorensen

+1

對不起,錯過了那個。 「$ 1」與您的正則表達式中的匹配模式1匹配。你忘了托架,所以你沒有托架。試試'^ library /(。* \。pdf)$'。另請閱讀我的[調試.htaccess重寫規則提示](http://stackoverflow.com/questions/9153262/tips-for-debugging-htaccess-rewrite-rules)。 – TerryE