質問

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

オンラインで見たところ、これは機能するはずです。残念ながら、それはありません。洞察力はありますか?

役に立ちましたか?

解決

.htaccessファイルでこれを使用する場合は、パターンから先頭のスラッシュを削除します。また、フルパスセグメントのみを一致させるには、式を少し変更する必要があります。

だからこれを試してください:

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

他のヒント

" dir1"の後のスラッシュを要求するように制限したい場合を除き、スラッシュが必要だとは思わない

試してください:     RewriteRule ^(dir1 | dir2 | dir3)$ targetfile.php [QSA、L]

問題は、正規表現がディレクトリ名(/ dir1 /など)の後にスラッシュを強制することですが、この例では最後のスラッシュが省略されていると思います( http://www.somesite.com/dir1 には末尾のスラッシュはありません。

試してみてください

RewriteRule ^/(dir[1-3]) /targetfile.php [R,L]
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top