.htaccessへのコメントの追加


88

なぜこれが機能するのですか?

RewriteRule (.+)/$ $1

そしてこの作品:

RewriteRule (.+)/$ $1 [L] #bla bla bla

しかし、これは機能しません:

RewriteRule (.+)/$ $1 #bla bla bla

回答:


142

.htaccessのコメントは、他のステートメントに追加しないで、独自の行に配置する必要があります。

コメントは実際にはコメントではないため、最後のルールは機能しません。htaccessファイル内のコメントを開始しなければならない#いない任意の任意の場所(行の先頭にある必要があります)、および。

2番目のケースでは、#bla bla blaRewriteRuleディレクティブの4番目のパラメーターとして解釈され、単に無視されます。

最後のケースでは、#bla bla blaは3番目のパラメーターとして解釈されます。これは、RewriteRuleの場合、フラグが移動する場所であり、#bla bla blamod_rewriteが理解できるフラグではないため、エラーが発生します。


7
「#は行の先頭にある必要があります」などのように、回答を編集することをお勧めします。とにかく、ありがとう!
user1032531 14

@ user1032531申し訳ありません、それは私が言いたかったことです
Jon Lin

コメントは<IfModule>内に含めることができますか?
ダニエルスプリンガー、

これは私が何度も再学習したものです。時間を浪費する可能性があります。ありがとうございました。
Xonatron

1
一方で#ラインの「開始」でなければならない、それは空白の任意の量が先行することができます。(過剰).htaccessの空白は無視され、行の先頭を含む任意の場所に「振りかける」ことができます。つまり、#行の最初の非空白文字でなければなりません。私は誤って#、一番左の列の文字1である必要があると考えていました!
SherylHohman

29

(うちApacheの設定ファイルのフォーマット.htaccessファイルは一例では)技術的にインラインコメントをサポートしていない、唯一のフルラインのコメント(つまり行から始まる#)。

ハッシュ文字「#」で始まる行はコメントと見なされ、無視されます。構成ディレクティブの後の行にコメントを含めることはできません。- 公式Apache 2.4マニュアル

混乱を招きますが、各モジュールはディレクティブの入力を解析しますが、好きなように-でmod_rewrite始まる行をどうするかを決定しますRewriteRule

確かなことはわかりませんが、私の推測では、のmod_rewrite後のすべてを無視しているため[flags]#実際には必要ありません。

しかし、最善の策は、コメントを常に独自の行に保持することです。これは、コメントしているディレクティブに関係なく機能するためです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.