mod_rewrite vários diretórios em um arquivo php
-
03-07-2019 - |
Pergunta
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
Pelo que tenho visto on-line, isso deve funcionar. Infelizmente, ele não vai. Qualquer insight?
Solução
Se você quiser usar isso em um arquivo .htaccess, remover a barra inicial do padrão. E para corresponder apenas os segmentos de caminho completo, você tem que alterar a expressão um pouco.
Então, tente o seguinte:
RewriteEngine on
RewriteRule ^(dir1|dir2|dir3)(/|$) targetfile.php [R,L]
Outras dicas
Eu não acredito que as barras são necessárias, a menos que queira limitar a exigir a barra final após "dir1."
Tente: RewriteRule ^ (dir1 | dir2 | pasta3) $ targetfile.php [QSA, L]
Eu acho que o problema é que os mandatos de expressão regular uma barra após o nome do diretório (eg / dir1 /), mas no exemplo da última barra é omitido ( http://www.somesite.com/dir1 não têm barra final).
Eu acho que você pode tentar apenas com
RewriteRule ^/(dir[1-3]) /targetfile.php [R,L]