2014-09-04 121 views
1

我準備爲我的網站重寫規則。當目標網址包含「%3A」等字符時,我遇到了問題。 當重寫url時,Apache mod_rewrite只是刪除「%3」。mod_rewrite重寫規則異常

比如我需要重寫URL

/primed-white-mdf-skirting+architrave/ 

/Products/Decorating+Interiors/Mouldings/Skirting/c/1000589?q=%3AtopSellers%3AColour%3AWhite&text=# 

我已經生成的規則這一點。那就是:

RewriteRule ^primed-white-mdf-skirting\+architrave/ /Products/Decorating+Interiors/Mouldings/Skirting/c/1000589?q=%3AtopSellers%3AColour%3AWhite&text=# [R=301,L,NE] 

因此改寫通行證:

/Products/Decorating+Interiors/Mouldings/Skirting/c/1000589?q=AtopSellersAColourAWhite&text=%23 

爲什麼出現這種情況?請幫助

+1

您是否嘗試過逃避''%跡象,該指令重寫部分?將它們改爲'\%'應該可以。 – Joe 2014-09-04 14:58:32

+0

轉義並添加[NE]鍵作品。謝謝! – 2014-09-05 16:38:53

回答

1

你需要躲避%否則%3被認爲是拍攝組從RewriteCond一個back-reference

RewriteRule ^primed-white-mdf-skirting\+architrave/ /Products/Decorating+Interiors/Mouldings/Skirting/c/1000589?q=\%3AtopSellers\%3AColour\%3AWhite&text=# [R=301,L,NE,QSA,NC]