個人的にロリポップは変なトラブルが多いのとサーバーが弱いので絶対使いたくないのですが、なぜか使っている人は多いです。
さらに不思議なのは、なぜかロリポップを使っている人はサーバー移転せずに、サーバー変更時にロリポップのハイスピードプランを契約したりする奇行をします。
先日ロリポップのハイスピードプランのサーバーをいじる機会がありました。その時に、Wordpressのサイトで記事を表示しようとするとindex.phpがダウンロードされるトラブルに見舞われました。
この記事では、Wordpressでindex.phpがダウンロードされる場合の解決方法について、ロリポップのハイスピードプランで起こった事例をもとにまとめています。
index.phpがダウンロードされる原因は?
index.phpがダウンロードされる原因はキャッシュ
ネットで検索するとindex.phpがダウンロードされる原因はキャッシュで、対策はキャッシュのクリアというのが定番でした。
また、ブラウザによって発生したりしなかったりというのも良くある事象のようです。特にChromeだと良く発生するような話もありました。
キャッシュをクリアしたら解決するのか?
さっそく、PCのキャッシュのクリアとchromeのプライベートモードで試しましたが、直ったり直らなかったりで、とても気持ち悪い。とても解決したとは言い難い。
更に、リダイレクトの問題も疑い、.htaccessを見直したりしましたが、解決せず。
ムキになっていろいろ試していると、ダウンロードフォルダにはindex.phpが100個ぐらいたまっていました。さすがに嫌になってきたところで、 WordPressをインストールし直そうと決意。しかし、状況はさらに悪化。 そのうちなぜかWordpressにログインしようとすると403エラーでログインできなくなりました。

だからロリポップはイヤなんだよ
すべてをやり直すことにした
いろいろやってしまったので何が悪いかわからなくなってきたので、一度仕切り直しが必要だと思いました。
WordPressの再インストールでダメだったので、ドメイン割り当てから全てやり直すことにしました。
この手順のポイントは公開ディレクトリも変更していることです。
- ドメインを一度解除
- 再度ドメインを割り当て
- ドメインを割り当てる公開ディレクトリ変更
- SSL化
- 再度wordpressをインストール
上記の手順でやり直したところ、今までindex.phpのダウンロードは止まりました。
index.phpがダウンロードされる原因はキャッシュ、しかし解決方法はローカル側だけでは対処できない
index.phpがダウンロードされる原因をワールドワイドに検索しているうちに、解決策らしきものを見つけました。実際に試してはいないので解決されるのか定かではありません。今後同じ問題が起きた時のために記録しておきます。
最近のWebサーバーはngnixやLiteSpeedなどApache以外のWebサーバーも増えてきて、サーバーサイドのキャッシュが効いている影響があるようです。見つけた情報だと、『 Webサーバー側にキャッシュが残っていると問題が起きるから.htaccessで対処すべし』というような内容だと思います。
The reason why your index.php is downloaded is that of your caching plugin or feature in your host which adds a few line of codes that makes your WordPress fast as it compresses the file but in some cases, wp-admin is also cached which makes it impossible to access.
So just edit your .htaccess and paste the above code given and your blog is again ready to rock
https://www.bloggersprout.com/wordpress-downloading-file-index-php/
Options +FollowSymlinks
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST}//s%{HTTPS} ^www\.(.*)//((s)on|s.*)$ [NC]
RewriteRule ^ http%3://%1%{REQUEST_URI} [L,R=307]
AddType x-mapp-php5 .php
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# add a trailing slash to /wp-admin
RewriteCond %{REQUEST_URI} ^.*/wp-admin$
RewriteRule ^(.+)$ $1/ [R=301,L]
# END WordPress
まとめ
index.phpがダウンロードされる場合は、キャッシュのクリアが必要だが、サーバーサイドのキャッシュの可能性もあるので、その場合は.htaccessに追記するか、別の公開ディレクトリにWordpressをインストールし直した方が良いと思いました。