'是什么?'符号是指.htaccess重写条件?

时间:2014-05-07 21:44:03

标签: regex .htaccess mod-rewrite rewrite symbols

我一直在阅读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]

所以我的问题有两个部分,它原来是在做什么(做什么)(还有什么?)?如果没有,它是如何用缺少的'$'来解释的。谢谢。

1 个答案:

答案 0 :(得分:1)

您的问题是?,但可能意味着您的正则表达式中缺少锚$

rewritecond %{http_host} ^mydomain.com$ [nc]

更正确的是:

rewritecond %{http_host} ^mydomain\.com$ [nc]

因为dot可以表示正则表达式中的任何内容,并且需要转义字面点。

没有$它也可能有效,但理论上它也可以匹配mydomain.comp。如果$到位,则只能匹配mydomain.com