さくらのレンタルサーバーにて、”.htaccess”ファイルを次のように設定し、httpドキュメントルートに設置。
DirectoryIndex index.php .ht
例えば”https://amidagamine.com/”のリクエストがあると”index.php”が表示されるようにしている。
これは問題なし。
その後、”index.php”にアクセスすると、
ブラウザのロケールを見て、”index.ja.php”または”index.en.php”に301リダイレクトするようにしていた。
(余談ですがこういうロケールの選択する場合は、303リダイレクトが適切なのかな?)
さらにのち、ロケールによるリダイレクトはやめて、”index.php”内でロケール処理をするように変更しました。
なので、”index.php”のみ残し、”index.ja.php”, “index.en.php”は削除。
ここで問題発生。
“https://amidagamine.com/”にアクセスすると、”index.ja.php”を表示しようとします。
(もちろん”index.ja.php”は削除したので404エラーとなります。)
“.htaccess”ファイルの設定が無視された状態です。
リダイレクトの設定をサーバーが覚えててくれてるのかな?
その推測のもとに、”index.ja.php”, “index.en.php”を作成し、”index.php”へ301リダイレクトさせます。
(元々の逆にリダイレクト)
これでアクセス後、”index.ja.php”, “index.en.php”を削除。
無事”https://amidagamine.com/”で”index.php”にアクセスできるようになりました!
行き当たりばったりの解決方法ですので、もし詳しい原因をご存知の方はコメントに書き込んでいただければうれしいです。
※2015/04/03追記
“https://amidagamine.com/”にアクセスした時、
ブラウザのアドレスバーを見ると、”https://amidagamine.com/index.php“と表示される。
単に”https://amidagamine.com/”と表示して欲しいので、いろいろ試したけどわからずあきらめる。
で、丸一日後に同じようにアクセスすると、単に”https://amidagamine.com/”と表示されました。
サーバーの設定を更新してくれたのかな?なので、この記事の問題も単に待ってればなおったのかも。