WordPressで.htaccessを有効化する方法
WordPressのパーマリンク設定を変更しようとしたところ,「.htaccess
を更新する必要があります」と表示されてしまいました.さらに,投稿した記事を読もうとすると404エラーでファイルが見つからないと言われてしまいます.
とりあえず,以下の方法により404エラーは出なくなりました.
環境
- CentOS 7.2 (VPS)
- Apache 2.4.6
- WordPress 4.9.2
手順
1. .htaccess
の作製
WordPressをインストールしたディレクトリに.htaccess
を作製します.ついでに所有者とパーミッションを変更します.{workgroup}
は適宜書き換えてください.
# touch .htaccess
# chown apache:{workgroup} .htaccess
# chmod 604 .htaccess
2. .htaccess
の内容を編集
vi
等のエディタを用いて,以下の通り書き込みます.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
3. Apacheの設定を変更
Apacheの設定を変更して.htaccess
の動作を許可してもらいます.
/etc/httpd/conf/httpd.conf
のうち以下の部分を修正します.(ここでは,AllowOverride All
としてますが,AllowOverride FileInfo
でも行けるような気がします.むしろセキュリティ的にはこちらの方がいい?)
...
# Further relax access to the default document root:
<Directory "/var/www/html">
#
# Possible values for the Options directive are "None", "All",
# or any combination of:
# Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
#
# The Options directive is both complicated and important. Please see
# http://httpd.apache.org/docs/2.4/mod/core.html#options
# for more information.
#
Options Indexes FollowSymLinks
#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
AllowOverride All # ここをNoneからAllに書き換える
#
# Controls who can get stuff from this server.
#
Require all granted
</Directory>
...
書き換えたら,httpd
サービスを再起動します.
# systemctl restart httpd
おわりに
以上で,パーマリンク設定を変更できるようになり,404等のエラーも出なくなるはずです.
しかし,相変わらずWordPressの設定画面には,「.htaccess
を更新する必要があります」とエラー表示されていますが,パーミッション設定が悪いのか?
参考
以下のサイトを参考にしました.ありがとうございます.
Read other posts