2015-10-12 11 views
7

Von einem anderen answer dieser doppelten Schrägstrich PunktWarum doppelter Schrägstrich (zB: \.) In htaccess Regex?

RedirectMatch 404 /\\.svn(/|$) 

üblich Da wir „/.svn“ usw. sind passend, warum ist das nicht ein einfacher Schrägstrich die Zeit zu entkommen?

+0

Nach [dieser Hilfeseite] (http://httpd.apache.org/docs/2.2/mod/mod_alias.html# redirectmatch) Der Backslash muss einzeln sein, damit er einem Literalpunkt entspricht. –

+2

Wenn es jemanden gibt, der den [Quellcode] erklären könnte (http://opensource.apple.com/source/apache/apache-647/apache/src/modules/standard/mod_alias.c), werde ich upvote. –

Antwort

1

Doppeltes Entkommen ist hier erlaubt, aber nicht wirklich erforderlich. Also diese beiden Regeln funktioniert:

RedirectMatch 410 /\\.svn(/|$) 

ODER

RedirectMatch 410 /\.svn(/|$) 
+0

Warum funktioniert das? Wenn Sie eine Datei mit dem Namen buchstäblich passen wollen '\ .svn' die doppelte Backslash nicht funktioniert, aber Sie müssen die Regex verwenden'/\\\. Svn' (3 davon), während die PCRE Backslash funktioniert anders in mod_rewrite (braucht nur 1, aber 2 stimmt mit der Datei \ .svn überein). –

+0

Guter Punkt Jon. Ich bin nur an dieser Zeile in Frage gegangen, da wir "/.svn" usw. zusammenbringen. Ich bin mir nicht sicher, ob 'RedirectMatch' (oder' mod_alias') Regex-Engine ist die gleiche wie die von 'mod_rewrite' (PCRE) verwendet. – anubhava

+0

@ JonLin Ich kann das '/ \\\. Svn' passender '\ .svn' wörtlich verstehen. Ich habe Probleme zu verstehen, warum '\\. Svn' Werke obwohl – hjpotter92