WordPress のパーマリンクを
https://example.com/sample-post/
という形にしたときに上手くいかなかった原因を解消したので、そのメモです。
ちなみに上記のような形を “Pretty パーマリンク” と呼び、
https://example.com/?p=N のような形を “Ugly” と呼びます。
解消方法の答えは公式ドキュメントに記載されています
パーマリンクの使い方
FollowSymLinksとAllowOverrideを設定しなければいけない
-
Options FollowSymLinks
-
AllowOverride All
この 2 つが設定されていなければいけません。
apache の .conf ファイルか、Wordpress がインストールされているディレクトリの .htaccess 等に上記を記載しなければなりません。
.conf ファイルを編集する際は、80 番ポートや 443 番ポートを間違えないように。
また、.conf ファイルを編集したら、apache の restart か reload を忘れないように。
.htaccess を編集する際は、後述しますが WordPress が書き込みを行う範囲外に記載しなければいけません。
.htaccess ファイルが存在しなければならない
WordPress の管理画面で Pretty パーマリンクを選択して保存すると
WordPress は .htaccess に書き込みを行います。
そのため、.htaccess が存在していなければなりません。
存在しない場合は WordPress が作成を試みるようですが、うまく行かない場合は自分で作成しましょう。
.htaccess の書き込み権限を WordPress が持っていなければならない
.htaccess に WordPress が書き込みを行うので、権限を持たなければなりません。
WordPress が書き込みを正しく行えなかった場合には下記のような内容が表示がされます。
chown apache:apache .htaccess
chmod 644 .htaccess
としてあげれば良さそうです。
FollowSymLinksとAllowOverrideを.htaccessに記載する際は、上書きされない場所に記載する
上記で説明したように、Wordpress は .htaccess に書き込みを行います。
.htaccess に記載を行う場合は
# BEGIN WordPress
・・・
# END WordPress
の外側に記載しましょう。
内側に記載してしまうと、上書きされて記載した内容が消えてしまいます。