如果是中文的系统
重写时是为了搜索引擎收录而重写
则要对url时行统一处理,但编码问题没遇见过,你可以改变浏览器的编码看看有没有问题第三个,看你url中有没有空格或其他不能用于url的字符第四:看你重写是否正确,我觉得重写时,可能要解码,即你的正则能否识别url中的中文第五:如果不SEO,则可以将url中文转成实体,不会出问题
重写时是为了搜索引擎收录而重写
则要对url时行统一处理,但编码问题没遇见过,你可以改变浏览器的编码看看有没有问题第三个,看你url中有没有空格或其他不能用于url的字符第四:看你重写是否正确,我觉得重写时,可能要解码,即你的正则能否识别url中的中文第五:如果不SEO,则可以将url中文转成实体,不会出问题
应该是mod_rewrite认不出中文的问题
设定RewriteCharset UTF-8给你个例子
[code=BatchFile]
RewriteEngine on
RewriteCharset UTF-8
RewriteCond %{HTTP_USER_AGENT} ".*Microsoft .* DAV 1.1.*" [OR]
RewriteCond %{HTTP_USER_AGENT} ".*(Microsoft .* DAV 1.1).*"
RewriteRule ^(.+[^/])$ $1 [L,CH=ASCII:CP932:UTF-8]RewriteCond %{HTTP_USER_AGENT} ".*Microsoft .* DAV.*" [OR]
RewriteCond %{HTTP_USER_AGENT} ".*(Microsoft .* DAV $).*" [OR]
RewriteCond %{HTTP_USER_AGENT} ".*Microsoft-WebDAV.*"
RewriteRule ^(.+[^/])$ $1 [L,CH=UTF-8:CP932]RewriteCond %{HTTP_USER_AGENT} ".*RMA/*.*" [OR]
RewriteCond %{HTTP_USER_AGENT} ".*xdwin9x/.*"
RewriteRule ^(.+[^/])$ $1 [L,CH=CP932]RewriteCond %{HTTP_USER_AGENT} ".*cadaver/.*" [OR]
RewriteCond %{HTTP_USER_AGENT} ".*Mozilla/.*"
RewriteRule ^(.+[^/])$ $1 [L,CH=EUC-JP]RewriteRule ^(.+[^/])$ $1 [L,CH=UTF-8:CP932:EUC-JP]
[/code]
RewriteEngine on
RewriteBase /utf-8/
RewriteCharset UTF-8
RewriteCond %{HTTP_USER_AGENT} ^Mozilla.*
RewriteRule ^(.+[^/])$ $1 [L,CH=UTF-8:SHIFT-JIS:EUCJP-OPEN]
</Directory>
<Directory "/usr/local/apache2/htdocs/shift-jis">
RewriteEngine on
RewriteBase /shift-jis/
RewriteCharset SHIFT-JIS
RewriteCond %{HTTP_USER_AGENT} ^Mozilla.*
RewriteRule ^(.+[^/])$ $1 [L,CH=EUC-JP:EUCJP-OPEN:UTF-8]
</Directory>
首先是iE和FF是可以识别中文的但如果不是有效的中文,谁也识别不了!
首先在FF下测试,
直接用home-中文.html这种格式