Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache mod_重写规则不会忽略包含非拉丁字符的图像路径_Apache_Mod Rewrite_Utf 8 - Fatal编程技术网

Apache mod_重写规则不会忽略包含非拉丁字符的图像路径

Apache mod_重写规则不会忽略包含非拉丁字符的图像路径,apache,mod-rewrite,utf-8,Apache,Mod Rewrite,Utf 8,这是我的mod_重写巫毒: 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.j

这是我的mod_重写巫毒:

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的网络小组证实了这一点)。因此,重写条件无法检测到这是针对实际文件的


我已将
AddDefaultCharset UTF-8
添加到.htaccess文件中,但这没有帮助。让我头疼的是,在本地(在Windows上)使用XAMPP进行测试时,我没有这个问题,但我在我的服务器上有这个问题(Dreamhost托管它)。我不知道两者之间的区别是什么,也不知道还能做些什么,所以我求助于你们的集体智慧。

根据这些评论,我建议:

  • 尝试查看主机是否配置了UTF-8(系统本身)
  • 验证apache文件是否以UTF-8编码
  • 是全局配置文件中的默认字符集吗?也许它可以改变人们的行为

  • 让我随时了解您的最新发现。

    这是一个很好的问题,也是我应该想到的一点-呸!我不能,我得到了404。服务器试图查找的URL不同:
    http://example.com/Ãrhus/some_image.jpg
    这是错误的Å(显然),我以前见过UTF8字符未正确解码的情况。我现在不知道该怎么处理这些新信息。我查看了访问日志。我看到了:
    86.30.140.183---[18/Apr/2011:10:04:12-0700]“GET/%C3%85rhus/some_image.jpg HTTP/1.1”404516http://example.com/%C3%85rhus/some_image.jpg“Mozilla/5.0(Windows NT 6.0;rv:2.0)Gecko/20100101 Firefox/4.0”
    我确保了。htaccess保存为UTF8,但仍然没有运气。很明显,Apache没有正确理解包含UTF8字符的URL。我刚刚尝试在名为“Århus”的目录中创建一个新文件index.html。Apache未能提供该页面,并给了我与以前相同的404(其中包含Ã)。即使我对Å(%C3%85)使用编码版本,它也会失败。我在Dreamhost的面板中查看了与角色集相关的任何选项,但没有看到任何选项。我不知道如何“告诉”服务器在UTF8中执行所有操作。非常感谢你的帮助,顺便说一句,M'vy-非常感谢。