0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【WordPress】パーマリンクに勝手にindex.phpが入ってしまうようになってしまった場合の原因と解決方法

Posted at

概要

  • WordPressをテスト環境から本番環境に引っ越したら、なぜかパーマリンクにindex.phpが入ってしまうようになってしまった。ということで、その原因と解決手順を残します。

Wordpress環境

  • サーバー(AWS EC2インスタンス)
    • OS:Ubuntu 18.04.3 LTS
    • Web Server:Apache/2.4.29
    • Wordpressバージョン:6.1.1
    • PHPバージョン:7.4.33

解決手順

  • WordPressの管理画面にログインし、「設定」→「パーマリンク設定」を選択します。パーマリンクの形式でindex.phpが入ってしまっていると思うので、任意のものを指定します。
  • これで自動的に更新されますが、反映されていない場合は、.htaccessファイルを手動で更新する必要があります。自分の場合は更新されなかったです。
  • まずは以下のディレクトリ(sampleのところは各自置き換えてください)に移動します。
$ cd /var/www/html/wpsample_homepage
  • ルートディレクトリ直下にある.htaccessに、警告で表示されている以下を先頭に追加します。
.htaccess
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
  • これにより、index.phpがパーマリンクに含まれなくなります。

なぜパーマリンクにindex.phpが含まれてしまうようになったのか?

  • ちなみに、どうしてindex.phpがパーマリンクに含まれてしまうのか調べたところ、.htaccessファイルが存在しない場合や書き込み権限がない場合に発生することがあるようです。パーマリンクの設定は、URLリダイレクトやURL書き換えのルールを記述する.htaccessと関係があるからですね。書き込み権限がなかったかもなので、その場合は、以下のコマンドを実行します。
chmod 664 .htaccess
  • これで根本的に解決できたはずです。パーミッションは666でもいいですが、セキュリティ上の理由からあまり推奨されていないので、664が良いとされています。(所有者とグループには読み取りと書き込みの権限を、その他のユーザーには読み取りの権限を与える)

参考:Apacheの設定ファイルを編集する方法も

  • ちなみに、Apacheの設定ファイルを編集することで解決するという記事がありました。こちらで解決できた、という記事も多いので、ご参考までに。
apache2.conf
<Directory "/var/www/html">
・・・
  AllowOverride None ## ここのNoneをAllにする
・・・
</Directory>

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?