WordPressで個別ページに行くと404エラーが出る件

当初、パーマリンク設定を「月と投稿名」にしていました。
それで運用して全然気づいてなかったんですけど、個別ページのリンクをクリックすると「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]

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です