use*_*073 37 .htaccess mod-rewrite
我一直在努力解决一个需要重写一个URL添加路径的访问规则.
RewriteRule ^(configuration/.+)$ application-server/$1 [L,NC,R=301,NE]
此规则仅在我的Joomla站点上导致空白页面,没有错误日志或消息.奇怪的是,我完成了所有其他规则:
RewriteRule ^(log/.+)$ application-server/$1 [L,NC,R=301,NE]
RewriteRule ^(monitor/.+)$ application-server/$1 [L,NC,R=301,NE]
最后,我在论坛中发现了使用以下选项的建议:
Options -Multiviews
这实际上解决了这个问题,但是我想知道在使用这个选项时是否会对其他规则产生任何副作用.
Jus*_*man 60
这是关于Apache内容协商.
一个MultiViews搜索是服务器执行一个隐含的文件名模式匹配,并从结果之间选择.  
例如,如果您configuration.php在根文件夹中有一个名为(或其他扩展名)的文件,并且在htaccess中为所谓的虚拟文件夹设置了规则,configuration/那么您的规则就会出现问题,因为服务器会configuration.php自动选择(如果MultiViews是启用,大多数时候都是这种情况).  
如果要禁用该行为,只需在htaccess中添加它即可
Options -MultiViews  
这样,现在将评估您的规则,因为禁用了内容协商.
在某些共享主机上,可能未启用协商模块.这会给你一个500错误.为避免此错误,您可以默认将指令封装在IfModule块中.
<IfModule mod_negotiation.c>
    Options -MultiViews
</IfModule>