2012-07-09 166 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