mod_rewrite múltiples directorios a un archivo php
-
03-07-2019 - |
Pregunta
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
Por lo que he visto en línea, esto debería funcionar. Por desgracia, no lo hará. ¿Alguna idea?
Solución
Si desea usar esto en un archivo .htaccess, elimine la barra diagonal inicial del patrón. Y para hacer coincidir solo los segmentos de la ruta completa, debes modificar la expresión un poco.
Prueba esto:
RewriteEngine on
RewriteRule ^(dir1|dir2|dir3)(/|$) targetfile.php [R,L]
Otros consejos
No creo que las barras diagonales sean necesarias, a menos que desee restringirlas para que requieran la barra diagonal posterior a " dir1. "
Prueba: RewriteRule ^ (dir1 | dir2 | dir3) $ targetfile.php [QSA, L]
Creo que el problema es que la expresión regular exige una barra después del nombre del directorio (por ejemplo, / dir1 /), pero en el ejemplo se omite la última barra ( http://www.somesite.com/dir1 no tiene una barra diagonal).
Creo que puedes intentarlo con
RewriteRule ^/(dir[1-3]) /targetfile.php [R,L]