【问题标题】:UTF-8 in .htaccess doesn't have effect if the URL ends in /如果 URL 以 / 结尾,则 .htaccess 中的 UTF-8 无效
【发布时间】:2019-06-07 14:14:57
【问题描述】:

我创建了一个.htaccess 文件:

AddDefaultCharset UTF-8

这样我的 HTML 标题

<meta http-equiv='Content-Type' content='text/html;charset=utf-8'>

将受到尊重。但是,它仅在我在 URL 末尾指定 /index.html 时才有效。如果我不这样做(并且只使用http://www.example.com/),它就不起作用。

我知道我可以使用AddDefaultCharset,或者为AddCharset 指令指定多个扩展名,但是如何指定完全没有文件名?

【问题讨论】:

  • “这样我的 HTML 标题 ... 将受到尊重”...?仅供参考,如果您设置 HTTP Content-Type 标头,则 HTML &lt;meta&gt; 标记将被忽略,因为该信息已在 HTTP 标头中。
  • @deceze 对。我一开始以为是相反的,这就是为什么我所有的 HTML 页面都使用&lt;meta&gt; 字符集标签。现在我的新服务器使用 ISO-8859-1,我发现情况并非如此。

标签: html apache .htaccess utf-8 character-encoding


【解决方案1】:

为了解决这个问题,我在.htaccess 中添加了以下几行:

<Directory "/">
    AddDefaultCharset UTF-8
</Directory>

给出了500 error: internal server error。然后我改成:

<Directory "/">
    AddCharset UTF-8 *
</Directory>

但有同样的错误。在我删除这些行后,将文件恢复为与问题相同的文件,问题就神秘地解决了。

我不会接受我的回答,但请等待可以解释发生了什么的人。

【讨论】:

    猜你喜欢
    • 2020-11-13
    • 2018-05-17
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-13
    相关资源
    最近更新 更多