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?

Foi útil?

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]
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top