这是我用于测试目的的.htaccess
文件。这是整个文件。
RewriteEngine On
<IfModule mod_rewrite.c>
RewriteCond %{REQUEST_URI} asdf [NC]
RewriteRule .* https://www.example.com/test/note.txt [R=302,L]
</IfModule>
[NC]
(无案例)就像冠军一样。 asdf
,ASDF
,AsDf
都会触发重写规则。但是,如果我将^
符号[NC]
停止工作。例如,
RewriteCond %{REQUEST_URI} ^asdf [NC]
当^
符号出现时,只有asdf
触发重写。 ASDF
会抛出404.我可能会遗漏某些内容,但由于某种原因,^
似乎会干扰[NC]
。这是为什么?
答案 0 :(得分:1)
^
是正则表达式中的零宽度断言,用于断言字符串的开始。它不会干扰NC
标志。问题是REQUEST_URI
变量以前导斜杠开头,即/
,因此您可以使用此规则:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/asdf [NC]
RewriteRule ^ https://www.example.com/test/note.txt [R=302,L]
</IfModule>