Frage

RewriteEngine on
RewriteRule ^/(dir1|dir2|dir3)/(.*)$ /targetfile.php [R,L]

http://www.somesite.com/dir1 -> http://www.somesite.com/targetfile.php
http://www.somesite.com/dir2 -> http://www.somesite.com/targetfile.php
http://www.somesite.com/dir3 -> http://www.somesite.com/targetfile.php

Von dem, was ich habe online gesehen, sollte diese Arbeit. Leider wird es nicht. Einsicht?

War es hilfreich?

Lösung

Wenn Sie dies in einer .htaccess-Datei verwenden möchten, entfernen Sie die führenden Schrägstrich aus dem Muster. Und nur vollständige Pfadsegmente zu entsprechen, haben Sie den Ausdruck ein wenig zu verändern.

So versuchen Sie dies:

RewriteEngine on
RewriteRule ^(dir1|dir2|dir3)(/|$) targetfile.php [R,L]

Andere Tipps

Ich glaube nicht, daß die Schrägstriche sind notwendig, es sei denn Sie es erfordert den Schrägstrich nach beschränken wollen „dir1.“

Versuchen:     RewriteRule ^ (dir1 | dir2 | dir3) $ targetfile.php [QSA, L]

Ich denke, das Problem ist, dass der reguläre Ausdruck einen Schrägstrich nach dem Verzeichnisnamen Mandate (zB / dir1 /), aber in dem Beispiel der letzte Schrägstrich weggelassen ( http://www.somesite.com/dir1 nicht über Schrägstrich).

Ich glaube, Sie könnten versuchen, nur mit

RewriteRule ^/(dir[1-3]) /targetfile.php [R,L]
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top