mod_rewrite複数のディレクトリをphpファイルに
-
03-07-2019 - |
質問
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]
所属していません StackOverflow