1

我想更改 url 中的字符。例如从这个

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
4

1 回答 1

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 的 RewriteMap,但您需要访问服务器或虚拟主机配置才能进行设置。

于 2012-07-09T20:52:13.220 回答