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

发布于 2022-09-11 17:05:07 字数 698 浏览 30 评论 0

在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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

孤蝉 2022-09-18 17:05:07

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文