【VPS】WordPressのパーマリンクが反映されない場合に確認したい3箇所

.htaccess

wordpressをインストールした場所の直下(wp-adminとか同じ場所)に、.htaccessファイルが存在してかつ以下のような内容が書かれているか。

# 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>

# END WordPress

mod_rewriteモジュールが読み込まれているか

LoadModule rewrite_module modules/mod_rewrite.so

apacheの設定ファイルに上記が存在することを確認します。(コメント(#)がついていたら削除してください。)

設定ファイルの場所

CentOS 6 系

sudo vi /etc/httpd/conf/httpd.conf

CentOS 7 系

sudo vi /etc/httpd/conf.modules.d/00-base.conf

AllowOverride All

AllowOverrideは.htaccessファイルの記述内容に対してどういった許可を与えるかの設定になります。

パーマリンクの設定を変更すると.htaccessファイルに設定が書き込まれるわけですが、そもそもAllowOverrideで許可されていないと設定は反映されません。

sudo vi /etc/httpd/conf/httpd.conf

の中の.htaccessファイルが設置されるフォルダの設定場所を探します。(大抵は/var/www/html

<Directory "/var/www/html">

この中のAllowOverrideAllにしてあげてください。

AllowOverride All