我想使用重定向301规则(即我希望能够避免重写规则)来重定向包含特殊字符的网址(例如é,à,...),例如
重定向301 /éxàmplehttp://mydomain.com/example
然而,简单地添加它不起作用。有什么建议?
答案 0 :(得分:2)
如何在Windows系统上解决此问题
在Windows上,您可以使用Notepad ++正确输入Unicode字符。启动Notepad ++后,从“编码”菜单中选择“无编号的UTF-8编码”,然后输入Unicode字符并保存文件。
要确保正确保存字符,请下载适用于Windows的十六进制编辑器,并确保将é
保存为c3 89
,并将à
另存为c3 a0
}。
之前的回复,我认为您使用的是Linux系统
很可能在.htaccess文件中没有正确保存Unicode字符。
尝试此命令时会得到什么:
grep -o .x.mple .htaccess | od -t x1 -c
如果正确保存了Unicode字符,你应该得到这个。
0000000 c3 a9 78 c3 a0 6d 70 6c 65 0a 65 78 61 6d 70 6c
303 251 x 303 240 m p l e \n e x a m p l
0000020 65 0a
e \n
0000022
如果您安装了xxd
或hd
,则可以获得更整洁的输出以进行故障排除:
$ grep -o .x.mple .htaccess | xxd -g1
0000000: c3 a9 78 c3 a0 6d 70 6c 65 0a 65 78 61 6d 70 6c ..x..mple.exampl
0000010: 65 0a e.
在所有输出中,您可以看到é
被保存为二进制数:c3 89
。您可以从http://www.fileformat.info/info/unicode/char/e9/index.htm看到以UTF-8编码的é
确实是两个字节:0xC3和0xA9。
同样,UTF-8格式的à
为:0xC3 0xA0。见http://www.fileformat.info/info/unicode/char/e0/index.htm。您也可以在输出中看到这些代码。
答案 1 :(得分:0)
这些应该可行,但这取决于你必须检查的一些事情:
a2enmod mod_alias
example
页面? (重定向在别名之前应用)然后,您可以尝试将字符设置为由浏览器编码,而不是将其转换为UTF-8,例如%C3%A9
用于é等。