如果是中文的系统
重写时是为了搜索引擎收录而重写
则要对url时行统一处理,但编码问题没遇见过,你可以改变浏览器的编码看看有没有问题第三个,看你url中有没有空格或其他不能用于url的字符第四:看你重写是否正确,我觉得重写时,可能要解码,即你的正则能否识别url中的中文第五:如果不SEO,则可以将url中文转成实体,不会出问题

解决方案 »

  1.   

    先看是否支持中文,再看看有没有可能把系统转为中文,比如里面有没有诸如:i18n.php,*.po,*.mo之类的文件,有的话,你自己可以把它转为中文系统吧!
      

  2.   


    应该是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]
      

  3.   

    <Directory "/usr/local/apache2/htdocs/utf-8">
    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>
      

  4.   

    上面各位说的方法我都试过了,但是不是apache启动不了,就是没有效果我再补充一下,在FF里输入http://www.xxx.com/home-用户名.html 程序直接报错了,说不是有效的UTF8字符,而且URL被自动编码成http://www.xxx.com/home-D1%C5%C3%C0%B5%FB.html 这样的格式在IE6下URL变成了乱码在IE7下则是好的浏览器都是没有改过设置的.顺便说下,我的APACHE是2.2.3,启动报错是:RewriteCharset  UTF-8和[L,CH=UTF-8:CP932] 里的CH
      

  5.   

    仍然是字符集不对
    首先是iE和FF是可以识别中文的但如果不是有效的中文,谁也识别不了!
      

  6.   

    你的这个地址是UTF-8编码下urlencode的产物吗?
    首先在FF下测试,
    直接用home-中文.html这种格式
      

  7.   

    把IE设置里高级 发送UTF-8 URL 去掉