我想从子目录中提供与特定模式匹配的文件,但我的规则导致无限重定向循环。在此示例中,我想从新路径提供Google网站验证文件:
RewriteRule ^(google.*html)$ /google_site_verification/$1 [L]
根据我的错误日志,这会导致内部重定向循环,不断向路径添加/google_site_verification
。我也尝试过:
RewriteCond %{REQUEST_URI} ^/google.*html$
RewriteRule ^(.*)$ /google_site_verification/$1 [L]
这给出了相同的结果。由于我的正则表达式明确定义了模式的开始和结束,为什么/google_site_verification/googleabcd1234.html
匹配?我尝试过的唯一有用的就是添加
RewriteCond %{REQUEST_FILENAME} !-f
进入链条,但我不想依赖文件不存在的东西来工作。
答案 0 :(得分:2)
您可以使用:
RewriteRule ^(google[^/]*\.html)$ /google_site_verification/$1 [L]
你的问题是两个网址匹配:
/ <强>谷歌即可。的 HTML 强>
/google_site_verification/google.html