2015-04-01 47 views
4

我試圖讓下面的URL匹配:如何正確的單引號字符在Apache重寫規則

http://olddomain.com/macmillan’s-st-luke-passion 

其中包含了右單引號字符(http://www.fileformat.info/info/unicode/char/2019/index.htm

重定向到一個新的位置。但是,我無法讓Apache做到這一點。

僅供參考我的重定向代碼(在虛擬主機)如下:

RewriteEngine on 
RewriteRule ^macmillan\xE2\x80\x99s-st-luke-passion$ http://newdomain.com/tickets/events/macmillans-st-luke-passion [R=301,L] 

的文件有其他重定向進行精確匹配的URL,而一個掛鉤所有重定向頁面的底部。這一個旨在將任何剩餘的URL匹配到/events/(old url)。例如,它將發送olddomain.com/page-titlenewdomain.com/events/page-title

Redirect 301/https://newdomain.com/events/ 

發生了什麼事,目前是Apache是​​忽略其中包含了正確的引號字符\x編碼字符串的特定規則。

並貫穿到將URL發送到錯誤位置的回退重定向。

任何人都可以幫助如何在Apache RewriteRule(或RedirectMatch)中匹配正確引號字符的URL嗎?

回答

1

試試這個規則在虛擬主機的配置文件:而在Apache或虛擬主機配置匹配

RewriteEngine on 

RewriteRule ^/?macmillan\xE2\x80\x99s-st-luke-passion$ http://newdomain.com/tickets/events/macmillans-st-luke-passion [NC,R=301,L] 

斜線是必需的,但在htaccess的不使用時。確保在新的瀏覽器中進行測試以避免舊緩存。

+1

添加/在開始的正則表達式模式很好,謝謝。忘記/規則! – simonrjones 2015-04-01 15:17:15

+0

不客氣,很高興它解決了。 – anubhava 2015-04-01 15:19:31