我希望我错过了一些愚蠢的事情。
我正在尝试使用OpenShift免费托管服务上的PHP 5.4盒式磁带在Apache 2.2上使用.htaccess重定向URL。
这与URI /固定链接/ a123匹配(请注意规则的过滤模式中缺少前导斜杠):
RewriteEngine On
RewriteRule permalink/a.*$ /permalink/b [R=301,L]
这与URI /固定链接/ a123不匹配(请注意规则的过滤模式中的前导斜杠):
RewriteEngine On
RewriteRule /permalink/a.*$ /permalink/b [R=301,L]
那么我有什么愚蠢的错误?
感谢。
答案 0 :(得分:4)
用于匹配mailto:
中的模式的URI通过删除前导RewriteRule
在每个目录上下文(在htaccess文件或<Directory>
容器中)进行规范化。因此,如果请求的URL是:
/
从文档根目录中的htaccess文件中,用于匹配规则的URI是http://example.com/web/permalink/123
。但是在web/permalink/123
文件夹中的htaccess文件中,URI为web
等。
因此,你不能让你的模式以permalink/123
开头,因为它们在htaccess文件的上下文中被剥离了。