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的域名转向也能成功不是吗?


慕妹3146593
浏览 580回答 1
1回答

慕桂英4014372

第二行 其实就是域名不为空的,比如 : "!^a" 代表匹配不以xx开头的 "a$" 代表以a结尾的 ,!^$这个其实就是不为空的
打开App,查看更多内容
随时随地看视频慕课网APP