2014-02-14 62 views
2

被剝奪我有一個看起來像這樣的規則的.htaccess:「%2」重寫規則

RewriteCond %{REQUEST_URI} ^/services/service1/?$ 
RewriteRule . http://www.domain.com/Service1%20Services.html [R=301,L] 

但我已經搜查,發現了%2被剝離,最終的結果是http://www.domain.com/Service10Services.html

%2,就像%1是一個RewriteCond Backreference

我的問題是我不知道如何逃避它,所以它會被視爲字符串文字。有人可以告訴我我該怎麼做?

+0

愚蠢的建議#1:反斜槓?愚蠢的建議#2:雙重百分比? – Charles

+0

兩者都嘗試..不行的 – reikyoushin

回答

1

%2是一個特殊的back-refernece變量,你需要轉義它來從字面上使用它。你也需要NE非編碼標誌。

使用此規則:

RewriteRule ^services/service1/?$ http://www.domain.com/Service1\%20Services.html [R=301,L,NE] 
+0

這將導致到'http:// www.domain.com/Service10Services.html' – reikyoushin

+1

看到更新的代碼。你也需要'NE'標誌。 – anubhava

+0

^內部服務器錯誤(500)如果我使用NE,如果我沒有使用NE,它會導致'http:// www.domain.com/Service1%2520Services.html'。對於上面的最後一條評論感到抱歉,這是因爲緩存不正確。 – reikyoushin