2012-07-09 217 views
1

我想更改url中的字符。例如,從這個.htaccess特殊字符

http://stackoverflow.com/palety-ciężkie 

這樣:

http://stackoverflow.com/palety-ciezkie 

我想改變的跡象:

ą|a, Ą|a, ć|c, Ć|c, ę|e, Ę|e, ł|l, Ł|l, ń|n, Ń|n, ó|o, Ó|o, ś|s, Ś|s, ź|z, Ź|z, ż|z, Ż|z 

回答

0

你必須記住,雖然URI /abc-ą編碼爲/abc-%C4%85,它通過重寫引擎發送時會得到未編碼。所以,你需要轉換的每一個規則:

RewriteRule ^(.*)ą(.*)$ /$1a$2 [R=301,L] 
RewriteRule ^(.*)Ą(.*)$ /$1a$2 [R=301,L] 
RewriteRule ^(.*)ć(.*)$ /$1c$2 [R=301,L] 
RewriteRule ^(.*)Ć(.*)$ /$1c$2 [R=301,L] 
RewriteRule ^(.*)ę(.*)$ /$1e$2 [R=301,L] 
RewriteRule ^(.*)Ę(.*)$ /$1e$2 [R=301,L] 

等,如果你不想重定向,而是希望URI在服務器上的內部被重寫(例如,使它所以瀏覽器的地址欄不會更改),然後從括號中刪除R=301.

另一個選擇是創建一個映射文件並使用mod_rewrite's RewriteMap,但是您需要訪問服務器或vhost配置才能設置它。

+0

這不起作用。我會嘗試R = 301的每個選項,如果沒有它,甚至可以嘗試替換例如%C5%9到s。還是行不通 – ariel 2012-07-10 12:13:05