2017-10-31 4 views
0

Ich möchte Dateien mit einem bestimmten Muster aus einem Unterverzeichnis liefern, aber meine Regel führt zu unendlichen Umleitungsschleife. In diesem Beispiel mag ich google Ort-Überprüfung von Dateien von einem neuen Weg dienen:Warum führt diese Umschreiberegel zu einer Endlosschleife?

RewriteRule ^(google.*html)$ /google_site_verification/$1 [L] 

Nach meinem Fehler protokolliert dies führt zu einer internen Umleitungsschleife, die auf den Weg Hinzufügen /google_site_verification hält. Ich habe auch versucht:

RewriteCond %{REQUEST_URI} ^/google.*html$ 
RewriteRule ^(.*)$ /google_site_verification/$1 [L] 

Welche gibt das gleiche Ergebnis. Da meine Regex explizit Anfang und Ende des Musters definiert, warum passt /google_site_verification/googleabcd1234.html? Das einzige, was ich versucht habe, das funktioniert ist das Hinzufügen

RewriteCond %{REQUEST_FILENAME} !-f 

in die Kette, aber ich will nicht auf der Datei für Dinge bestehenden verlassen, nicht zu arbeiten.

Antwort

2

können Sie verwenden:

RewriteRule ^(google[^/]*\.html)$ /google_site_verification/$1 [L] 

Ihr Problem ist, dass beide URLs entsprechen:

/google. html
/google _site_verification/google. html

+1

duh .. ja ich sehe jetzt - es entspricht dem übergeordneten Verzeichnis. Das enthält auch das Wort Google. – billynoah

Verwandte Themen