2013-09-24 406 views
2

我有這個URL(url編碼兩次):阿帕奇重寫規則重定向與URL編碼

http%253A%252F%252Fwww.google.cl%252F%2523test (translated: http://www.google.cl/#test) 

而這個重寫規則:

RewriteRule /linkto/(.*?)/ ${unesc:$1} [R,L] 

,如果我把這個網址在瀏覽器:

http://localhost/linkto/http%253A%252F%252Fwww.google.cl%252F%2523test/data/ 

Apache重定向到http://www.google.cl/%23test而不是http://www.google.cl/#test

問題產生的原因只有#(數字符號)。

任何想法?

回答

4

你可以嘗試NE標誌:

RewriteRule ^/?linkto/(.*?)/ ${unesc:$1} [R,L,NE,NC] 
+0

這工作得更好......但重定向到:HTTP://本地主機/ HTTP://www.google.cl/#test而不是http:// www.google.cl/#test –

+0

啊確定引導斜槓問題。現在編輯代碼。 – anubhava

+0

解決使用這樣的重寫:RewriteRule ^/linkto /(.*?)/ $ {unesc:$ 1} [R,L,NE,NC]謝謝! –