2009-03-05 8 views
1
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.phpmod_rewrite mehrere Verzeichnisse zu einer PHP-Datei

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

Antwort

1

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

diese So versuchen:

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

Ich glaube nicht, dass 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]

0

ich glaube, das Problem ist, dass der reguläre Ausdruck einen Schrägstrich nach dem Verzeichnisnamen Mandate (zB/dir1 /), aber im Beispiel wird der letzte Schrägstrich weggelassen (http://www.somesite.com/dir1 hat keinen abschließenden Schrägstrich).

Ich glaube, Sie könnten versuchen, nur mit

RewriteRule ^/(dir[1-3]) /targetfile.php [R,L]