Mar*_*aio 35 regex .htaccess mod-rewrite case-insensitive
我在htaccess
这些类型的规则中多次看到过:
RewriteCond %{HTTP_REFERER} !^http://www.domain.it$ [NC]
Run Code Online (Sandbox Code Playgroud)
要么
RewriteCond %{HTTP_HOST} !^www\.domain\.it$ [NC]
Run Code Online (Sandbox Code Playgroud)
NC
当仅检查域部分时,为什么标记是必需的?
我注意到浏览器总是将域名中的大写字母转换成小写字母,所以[NC]
在这种情况下我看不出该标志是什么值得使用的.
我的意思是,如果我们检查网址的剩余部分,我理解[NC]
在Unix系统上标记原因的需要www.domain.com/index.html
是不同的文件,www.domain.com/INDEX.HTML
但是NC
当我们只检查RewriteRule中的域部分时,我不理解标记的需要.
由于您花时间阅读上述内容,我还要问一个与NC
旗帜没有直接关系但与之相关的小问题RewriteCond
RewriteCond
上面显示的两个都运行良好,我认为只有点之前的斜线才能工作(!^www\.domain\.it$
)因为没有斜线的点应该表示正则表达式中的"任何字符",而\.
意思是点字符,但是另外一个表示效果很好,但是你知道为什么?
anu*_*ava 40
拥有[NC]
绝对不是强制性的,但建议把它匹配域.现代浏览器可能将域名转换为小写但对于旧的浏览器和命令行utils的喜欢wget
,curl
等等,所以你不应该总是依赖于客户端发送您小写字母的域名,并保持[NC]
.
关于你的第二个问题.
匹配任何字符因此它能够匹配www.domain.com
但它也将匹配www-domain-com
你不想匹配的文本.所以最好有www\.domain\.com
归档时间: |
|
查看次数: |
61361 次 |
最近记录: |