- スラッグ名が、固定ページ・投稿・カテゴリで被っていませんか?
- htaccessの権限は777ですか?
- サーバはrewriteRuleに対応していますか?
- httpd.confのAllowOverrideの設定が、もしかしてNoneですか?
- URLが変わった場合には(wp/とかを消す場合)、ひとつ上の階層にもhtaccessを配置してありますか?そしてその内容のPATHは正しいですか?(ちなみに、WordPress内のファイルには、wp/をつける。上の階層にはつけない。)
2はついでに中身も確認。
# BEGIN WordPress
RewriteEngine On
RewriteBase /WordPress/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f<br />RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /WordPress/index.php [L]
# END WordPress
3については以下のコマンドで確認。
# grep mod_rewrite /etc/httpd/conf/httpd.conf
LoadModule rewrite_module modules/mod_rewrite.so
# find / -name mod_rewrite.so -print
/usr/lib64/httpd/modules/mod_rewrite.so
4はhttpd.confの中身を確認。
vi /etc/httpd/conf/httpd.conf
~ の中でAllowOverrideがNoneのままだった。
このため、.htaccessの設定が無効になっていたのだ。
そこで以下のように変更したら正常に表示されるようになった。
AllowOverride None
↓
AllowOverride All
apacheを再起動する
/etc/init.d/httpd restart