Domanda

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

Da quello che ho visto online, dovrebbe funzionare. Sfortunatamente non lo farà. Qualche idea?

È stato utile?

Soluzione

Se vuoi usarlo in un file .htaccess, rimuovi la barra iniziale dal modello. E per abbinare solo i segmenti del percorso completo, devi modificare leggermente l'espressione.

Quindi prova questo:

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

Altri suggerimenti

Non credo che le barre in avanti siano necessarie, a meno che tu non voglia limitarle a richiedere la barra finale dopo " dir1. "

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

Penso che il problema sia che l'espressione regolare impone una barra dopo il nome della directory (ad esempio / dir1 /), ma nell'esempio viene omessa l'ultima barra ( http://www.somesite.com/dir1 non ha una barra finale).

Penso che potresti provare solo con

RewriteRule ^/(dir[1-3]) /targetfile.php [R,L]
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top