我一直在阅读Apache文档中的Rewrite条件信息但是无处可去,所以我希望你能提供帮助。在我的.htaccess文件中,我有一些这样的行:
Options +FollowSymlinks
RewriteEngine on
rewritecond %{http_host} ^mydomain.com [nc]
rewriterule ^(.*)$ http://www.mydomain.com/$1 [r=301,nc]
我已经注意到第3行丢失了一个美元符号,所以它应该这样运行:
rewritecond %{http_host} ^mydomain.com$ [nc]
所以我的问题有两个部分,它原来是在做什么(做什么)(还有什么?)?如果没有,它是如何用缺少的'$'来解释的。谢谢。
答案 0 :(得分:1)
您的问题是?
,但可能意味着您的正则表达式中缺少锚$
。
rewritecond %{http_host} ^mydomain.com$ [nc]
更正确的是:
rewritecond %{http_host} ^mydomain\.com$ [nc]
因为dot可以表示正则表达式中的任何内容,并且需要转义字面点。
没有$
它也可能有效,但理论上它也可以匹配mydomain.comp
。如果$
到位,则只能匹配mydomain.com