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的域名转向也能成功不是吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
第二行 其实就是域名不为空的,比如 : "!^a" 代表匹配不以xx开头的 "a$" 代表以a结尾的 ,!^$这个其实就是不为空的