2016-12-21 3 views
1

Ich habe eine Notwendigkeit, wo ich eingehende URLs nehmen und sie von Root aus bedienen muss, ohne die URL zu ändern..htaccess Dienen alles aus dem Stammverzeichnis

Also, wenn jemand Typen in: http://example.com/randomdirectory/page.html

wäre es

http://example.com/page.html bekommen dienen, aber die URL nicht ändern würde.

Ich fühle mich wie ich bin nah dran mit dem folgenden, aber es schlägt fehl, wenn die URL in einem Schrägstrich endet; welches ich dem Index dienen möchte.

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)\/([^.]+.html) /$2 [L] 

Im Grunde möchte ich nur die gleichen Dateien dienen (bei root), egal, was die Benutzertypen in

Antwort

1

Sie diese Regel stattdessen verwenden können.

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.+)/(.*)$ /$2 [L] 
+1

Es funktioniert perfekt. Vielen Dank. Wenn du Zeit hast und es dir nichts ausmacht, kannst du erklären, was die Teile der Regel tun? – gin93r

+1

'(. +) /' Entspricht bis zum letzten '/' in der URL und '(. *)' Entspricht dem letzten Teil. Dann ist es das Ziel, das wir '/ $ 2' verwenden, das eine Rückreferenz der zweiten einfangenden Gruppe ist, und'/'vor' $ 2' stellt sicher, dass es zum root der Website weitergeleitet wird. – anubhava

+1

Ich schaute nach oben. Ich war neugierig was das '(. +)' Machte. Mann, ich war so nah. Danke nochmal @anubhava. – gin93r

Verwandte Themen