13

我想将 .xhtml 文件作为

  • application/xhtml+xml如果浏览器说它接受它。
  • text/html除此以外

我尝试使用它,mod_rewrite但它不起作用Options -FollowSymLinks(请参阅如果我有 `Options -FollowSymLinks`,查看受 Apache RewriteRule 影响的文件时为什么会出现 403 Forbidden?)。

然后,我尝试了

<Files "*.xhtml">
    <If "%{HTTP:Accept} !~ /application\/xhtml\+xml/">
        ForceType text/html
    </If>
</Files>

但我得到一个语法错误:Failed to compile regular expression

同时,我使用此代码...

<Files "*.xhtml">
    <If "%{HTTP:Accept} !~ /xhtml\+xml/">
        ForceType text/html
    </If>
</Files>

...这行得通,但我想匹配正确的 MIME 类型。

4

2 回答 2

11

您可以使用转义码\x2F代替/.

于 2013-02-28T18:29:37.873 回答
10

从 Apache 2.4 开始,它看起来仍在改进中。Apache 团队成员“covener”建议 m#regexp#改为。

所以你的代码看起来像这样......

<If "%{HTTP:Accept} !~ m#application/xhtml\+xml#">
于 2015-05-31T17:32:52.140 回答