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?

¿Fue útil?

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]
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top