其中包含非拉丁字符的图像路径不会被mod_rewrite规则忽略

时间:2011-04-18 15:33:55

标签: apache mod-rewrite utf-8

这是我的mod_rewrite voodoo:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . index.php [L,QSA]

如果图像路径中包含非拉丁字符,则不会显示。无论非拉丁字符是否在目录名称的图像名称中,都会发生这种情况。图像的示例URL:

http://example.com/Århus/some_image.jpg   # broken image placeholder in browser
http://example.com/beer/øl.jpg            # same

我已经检查过,标签中图片的路径是正确的。但是mod_rewrite将这些图像的请求重定向到index.php(Firebug的网络面板证实了这一点)。因此,RewriteCond无法检测到这是针对实际文件的。

我已将AddDefaultCharset UTF-8添加到.htaccess文件中,但这没有帮助。让我感到困惑的是,我在本地(在Windows上)使用XAMPP进行测试时没有遇到此问题,但我在我的服务器上进行测试(Dreamhost托管它)。我无法弄清楚两者之间的区别是什么,或者做了什么,所以我转向你的集体智慧。

1 个答案:

答案 0 :(得分:0)

根据评论,我建议:

  1. 尝试查看主机是否配置了UTF-8(系统本身)
  2. 验证apache文件是否以UTF-8
  3. 编码
  4. 是否在全局配置文件中设置了默认的Charset?可能是它可以改变行为。
  5. 让我了解您的最新动态。