Apache rewrite非www转www官方文档例子中的^$是怎么回事?

在Apache HTTPD官方文档中有关网址的非www转向www的举例中有这样一段

RewriteCond %{HTTP_HOST} !^www\.example\.com [NC]
RewriteCond %{HTTP_HOST} !^$
RewriteRule ^/?(.*) http://www.example.com/$1 [L,R,NE]

该段rewrite规则将诸如http://example.com/index.php...://www.example.com/index.php。

第一行的!(感叹号)表示非、[NC]表示大小写不敏感、反斜杠表示转引域名中间的.符号。
第三行的^表示可能以/(斜杠)开始、之后是任意字串,一直一结束,这个会配对上面的index.php,会将原始地址改写成http://www.example.com/index.php,且临时转向到本句结束、不转换特殊字符。

但是第二行的!^$是什么意思呢?字面上理解似乎是非开始结束?如果没有第二行代码,我觉得这个非www到www的域名转向也能成功不是吗?

阅读 2.5k
1 个回答

第二行 其实就是域名不为空的,比如 : "!^a" 代表匹配不以xx开头的 "a$" 代表以a结尾的 ,!^$这个其实就是不为空的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏