当初、パーマリンク設定を「月と投稿名」にしていました。
それで運用して全然気づいてなかったんですけど、個別ページのリンクをクリックすると「404エラー」が出てました。
ググっても参考になりそうなサイトがない、最後の手段でkawa君に相談してみました。
パーマリンク設定をデフォルトにしてしばらく使っていたんですが、やはり「月と投稿名」にしたい。ネットで検索しなおしました。
今度は出てきました。
私の場合「2. 「httpd.confファイル」にサイトを配置したディレクトリに「AllowOverride」を追記」に当てはまってました。
今まで仕事でサイト管理者をやっていて、ユーザーが勝手に.htaccessでIncludesなんかを使われたらたまらん、ということで、「AllowOverride」をNoneに設定していました。
WordPressが「.htaccessに設定してくれ」と表示された時点で気づくべきでした。
それが今回の原因、と。
修正したhttpd.conf(正確にはconf.dディレクトリのexample.conf)は、
<VirtualHost *:80> ServerName example.jp ServerAlias *.example.jp DocumentRoot /home/example/www/wordpress ScriptAlias /cgi-bin/ "/home/example/cgi-bin/" DirectoryIndex index.php Options +IncludesNoExec <Directory "/home/example/www/wordpress"> AllowOverride All </Directory> <Directory /home/example/cgi-bin> AllowOverride None Options ExecCGI Order allow,deny Allow from all </Directory> ErrorLog logs/example.jp.error_log CustomLog logs/example.jp.access_log common </VirtualHost>
です。
.htaccessの中身は、
RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] # add a trailing slash to /wp-admin RewriteRule ^wp-admin$ wp-admin/ [R=301,L] RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^ - [L] RewriteRule ^(wp-(content|admin|includes).*) $1 [L] RewriteRule ^(.*\.php)$ $1 [L] RewriteRule . index.php [L]