お世話になります。
https://www.hoge.com/aaa/bbb と https://www.hoge.com/index.php/aaa /bbb
で同じページが表示されるのですが、それをすべて /index.php/ を取り除いたURLに301リダイレクトさせたいです。
また、複数ドメインに対しても同一の動作となるようにしたいです。
【実現したい301リダイレクト】
① https://www.hoge.com/index.php → https://www.hoge.com
② https://www.hoge.com/index.php/aaa/bbb → https://www.hoge.com/aaa/bbb
③ https://test-hoge.com/index.php → https://test-hoge.com/
④ https://test-hoge.com/index.php/aaa/bbb → https://test-hoge.com/aaa/bbb
試したこと
/www 配下の.htaccess 内に以下を記述しました。
RewriteEngine on RewriteCond %{THE_REQUEST} ^.*/index.php RewriteRule ^(.*)index.php$ https://%{HTTP_HOST}/$1 [R=301,L]
上記では①と③は実現できるのですが、②と④の場合に /index.php/ が取り除けません。
そこで上記の下に下記の①と②を別々に記述しました。
① Redirect permanent /index.php/ https://www.hoge.com/ ② Redirect permanent /index.php/ https://%{HTTP_HOST}/
①の場合だと想定通りの動きをするようなのですが、できればドメインは一括で記述したいです。
②の場合だと環境変数が使えないのか動作が効かず、ページも開けなくなります。
知識不足のためつまづいております。何かアドバイスをいただけないでしょうか。
よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー