2011-08-25 95 views
1

有沒有辦法通過.htaccess重定向包含智能引號的URL?我正在使用以下規則。只有最後一個似乎工作:如何通過.htaccess重定向包含smartquotes的URL?

RewriteRule ^8-%E2%80%9Crules%E2%80%9D-for-social-advertising$ /8-rules-for-social-advertising [R=301,L] 
RewriteRule ^8-「rules」-for-social-advertising$ /8-rules-for-social-advertising [R=301,L] 
RewriteRule ^8-%25E2%2580%259Crules%25E2%2580%259D-for-social-advertising$ /8-rules-for-social-advertising [R=301,L] 

當我衝浪http://blog.eloqua.com/8-「rules」-for-social-advertising/http://blog.eloqua.com/8-%E2%80%9Crules%E2%80%9D-for-social-advertising它不重定向。

但是,如果我去http://blog.eloqua.com/8-%25E2%2580%259Crules%25E2%2580%259D-for-social-advertising一切正常。

我在做什麼錯?非常感謝你的幫助!

回答

3

你是對的,它正在滑過你提供的規則。

原因是因爲由%E2%80%9C和%E2%80%9D(aka microsoft smartquotes)表示的unicode字符已經在Apache中變成了unicode表示。因此,您需要正確匹配代表apache內的這些字符的字節流。

爲了正確導向網址像這樣:

http://www.example.com/8-%E2%80%9Crules%E2%80%9D-for-social-advertising 

你會使用這樣的規則:

http://www.example.com/8-\xE2\x80\x9Crules\xE2\x80\x9D-for-social-advertising