Frage Hinzufügen von Kommentaren zu .htaccess


Warum funktioniert das?

RewriteRule (.+)/$ $1

und diese Arbeit:

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

aber das funktioniert nicht:

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

75
2018-02-28 22:14


Ursprung


Antworten:


Kommentare in .htaccess müssen auf ihrer sein eigene Linie, nicht an andere Anweisungen angehängt.

Die letzte Regel funktioniert nicht, weil die Kommentare nicht wirklich Kommentare sind. Kommentare in htaccess Muss beginnen mit einem # (muss am Anfang einer Zeile stehen), und nicht beliebig irgendwo.

Im zweiten Fall, der #bla bla bla wird als 4. Parameter der. interpretiert RewriteRule Richtlinie, die einfach ignoriert wird.

Im letzten Fall, der #bla bla bla wird als dritter Parameter interpretiert, der in der RewriteRuleFall ist, wo die Fahnen gehen, und #bla bla bla Es gibt keine Flags, die mod_rewrite versteht, daher erhalten Sie einen Fehler.


124
2018-02-28 22:27



Das Konfigurationsdateiformat von Apache (davon .htaccess Dateien sind ein Beispiel) technisch nicht unterstützt Inline-Kommentare, nur Full-Line-Kommentare (d. h. eine Zeile Anfang mit einem #).

Zeilen, die mit dem Rautenzeichen "#" beginnen, werden als Kommentare betrachtet und ignoriert. Kommentare dürfen nicht in einer Zeile nach einer Konfigurationsanweisung enthalten sein. - Offizielles Apache 2.4 Handbuch

Verwirrenderweise jedoch, jedes Modul wird die Eingabe für seine Anweisungen analysieren, wie es ihnen gefällt - also mod_rewrite entscheidet, was mit einer Zeile angefangen wird, die mit beginnt RewriteRule

Ich weiß es nicht genau, aber meine Vermutung ist das mod_rewrite ignoriert alles nach dem [flags], und das # ist eigentlich gar nicht nötig.

Am besten ist es jedoch, die Kommentare immer in der eigenen Zeile zu behalten, da dies unabhängig von der Anweisung funktioniert, die Sie kommentieren.


25
2018-02-28 22:27