Question

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

D'après ce que j'ai vu en ligne, cela devrait fonctionner. Malheureusement, ça ne va pas. Une idée?

Était-ce utile?

La solution

Si vous souhaitez utiliser cela dans un fichier .htaccess, supprimez la barre oblique du motif. Et pour ne faire correspondre que les segments de chemin complets, vous devez modifier légèrement l'expression.

Alors essayez ceci:

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

Autres conseils

Je ne crois pas que les barres obliques soient nécessaires, à moins que vous ne souhaitiez limiter la barre oblique à la fin du champ "dir1".

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

Je pense que le problème est que l'expression régulière impose une barre oblique après le nom du répertoire (par exemple, / dir1 /), mais dans l'exemple, la dernière barre oblique est omise ( http://www.somesite.com/dir1 ne comporte pas de barre oblique finale).

Je pense que vous pourriez essayer juste avec

RewriteRule ^/(dir[1-3]) /targetfile.php [R,L]
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top