首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.htaccess中的多视图选项到底有什么作用?

.htaccess中的多视图选项到底有什么作用?
EN

Stack Overflow用户
提问于 2014-08-21 17:45:27
回答 1查看 55K关注 0票数 45

我一直在为一个访问规则而苦苦挣扎,它需要重写一段添加路径的URL。

代码语言:javascript
复制
RewriteRule ^(configuration/.+)$ application-server/$1 [L,NC,R=301,NE]

这条规则导致我的Joomla站点上只有一个空白页面,没有错误日志或消息。奇怪的是,所有其他规则我都运行得很完美:

代码语言:javascript
复制
RewriteRule ^(log/.+)$ application-server/$1 [L,NC,R=301,NE]
RewriteRule ^(monitor/.+)$ application-server/$1 [L,NC,R=301,NE]

最后,我在一个论坛上找到了使用以下选项的建议:

代码语言:javascript
复制
Options -Multiviews

这实际上解决了问题,但是我想知道当使用这个选项时,是否会对其他规则产生任何副作用。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-08-21 18:14:18

这是关于Apache内容协商的。

MultiViews搜索是服务器执行隐式文件名模式匹配并从结果中进行选择的地方。

例如,如果根文件夹中有一个名为configuration.php (或其他扩展名)的文件,并且您在htaccess中为一个名为configuration/的虚拟文件夹设置了一个规则,那么您的规则就会出现问题,因为服务器会自动选择configuration.php (如果启用了MultiViews,大多数情况下都是这样)。

如果您想禁用该行为,您只需在htaccess中添加以下内容

Options -MultiViews

这样,您的规则现在将被评估,因为内容协商被禁用。

编辑

在某些共享主机上,协商模块可能未启用。这会给你一个500错误。若要避免此错误,默认情况下可以将指令封装在IfModule块中。

代码语言:javascript
复制
<IfModule mod_negotiation.c>
    Options -MultiViews
</IfModule>
票数 78
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25423141

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档