2017-03-05 7 views
0

これはテスト目的で使用している.htaccessファイルです。これはファイル全体です。なぜ.htaccessの[NC]に干渉しますか?

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]は停止します。例えば、唯一asdf^符号で

RewriteCond %{REQUEST_URI} ^asdf [NC] 

書き換えをトリガします。 ASDFは404をスローします。何か不足しているかもしれませんが、何らかの理由で^[NC]と干渉しているようです。どうしてこれなの?

+1

「'^'存在署名のみ 'asdf'が書き換えをトリガ' ASDF'は404をスローで。」:あなたはこのルールを使用できるように、問題は、REQUEST_URI変数はすなわち/スラッシュから始まるということです - あなたが掲示したコードでは不可能です - キャッシングの問題のように聞こえます。 – MrWhite

答えて

1

^は正規表現のゼロ幅アサーションで、文字列の先頭をアサートするために使用されます。ここではNCフラグに干渉していません。

<IfModule mod_rewrite.c> 
    RewriteEngine On 

    RewriteCond %{REQUEST_URI} ^/asdf [NC] 
    RewriteRule^https://www.example.com/test/note.txt [R=302,L] 
</IfModule> 
+0

anubhavaありがとうございますが、その行を 'RewriteCond%{REQUEST_URI} ^/asdf [NC]'に変更しました。ブラウザのアドレスバーにASDFを試したときに404を投げました。 – DR01D

+1

ブラウザに入力するURLとは何ですか?また、ブラウザのキャッシュをクリアしてください – anubhava