大変お世話になっております
拡張子.htmlを.phpのファイルにリダイレクト仕方
各サイトを参考に.htaccessのリダイレクト設定を行ったのですがリダイレクト先がどうしても
レンタルサーバのルートの.phpに遷移してしまいます。
レンタルサーバーはロリポップを使用しています。
※htmlをphpにリダイレクトするとSEOの観点から良くないとかありますが一旦ここではおいておきます。
発生している問題・エラーメッセージ
以下のようにリダイレクトしてしまいます。
例)
https://ドメイン/サブフォルダ/index.html
↓
https://ドメイン/index.php
本来は、以下を想定しているのですが
https://ドメイン/サブフォルダ/index.html
↓
https://ドメイン/サブフォルダ/index.php
該当のソースコード
以下が、記述しているコードです。
RewriteEngine on RewriteRule ^(.*).html$ /$1.php [R=301,L]
試したこと
一応以下のサイトで記述の妥当性を調べられたので記述自体は間違っていないと思いたいのですが、、、
https://htaccess.madewithlove.be/
あとはRewriteBaseも設定してみましたが変わらずルートになってしまいました。
※RewriteBaseは遷移先のURLに聞くということと相対パスでないとだめということなので以下のような記述にしてみましたが駄目でした
改めて下記の記述を試したところ、うまくいきました。
どうも301にしていたのでキャッシュが強く残っていたようです。
なるべくならRewriteBase を指定しないで実現できたらいいのですが
正規表現と$1の部分に問題があるのではないかと思うのですが
RewriteEngine on RewriteBase /サブフォルダ/ RewriteRule ^(.*).html$ $1.php [R=301,L]
補足情報
ロリポップのサポートにも問い合わせ中ですが、分かる方がいましたらお願いいたします。
※サポートから解決方法がありましたら、自己解決にて掲載いたします。
.htaccessのキャッシュ?が強すぎて一度設定するとなかなか消せないのでその対策もあればお願いしたいです。
確認ブラウザはchromeです。
↓
キャッシュについては、試している最中は302にすることで解決しました。
301(永久的)が強すぎたようです。
ロリポップ限定ですが、アクセラレータの設定でサーバーにもキャッシュしているそうですが対象のドメインでは設定は無効になっていました。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。