WordPressでRSSフィードが取得できない時に疑うこと
ワードプレスでは自動でRSSを出力してくれる。その取得URLは下記の通り、
http://example.com/feed/
http://example.com/feed/rss/
か、
http://example.com/?feed=rss
http://example.com/?feed=rss2
他にもあるが、どうでもいいので割愛。
マネージド・レンタルサーバーであれば多分このエラーはレアケース。
ちゃんと指定してもRSSが取得できないケースがある。
VPSにインストールした場合は割とある。
その原因は .htaccess にある。
症状
・RSSが取得できない
・直接RSSのURLを見に行くと404エラー(そりゃ取得できる訳もない)
・個別記事も404
・カテゴリーなども404
確認
サーバー内(FTPソフトなどで見る)Wordpressのフォルダの .htaccess をダウンロードして中身を見てみよう。
# BEGIN WordPress
<ifmodule mod_rewrite.c=”">
RewriteEngine On
RewriteBase /wp/
RewriteRule ^index\.php$ ? [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
大体こんな感じのものが書かれているはず。
書かれてなければコピペして上書きアップロードで完了。
書かれてるのにダメな場合もある。
よくあるパターンはVPS使っていて .htaccess が無効になっている場合。
VPSで個別記事が404になる時の解決法
.htaccess が無効になっているのを有効化する方法。通称黒い窓を触る必要がある。
さくらのVPSで説明するが、他のVPSでもやり方は割と同じ。
「契約情報」→「契約サービス一覧」→「サーバ設定」→「コンソールの中のシリアルコンソール」
なお、シリアルコンソールでなくてもやり方は同じ。
基本的には、マウスは使えない、コピペなど普通にはできない。
キーボードの矢印とコマンドとエンターでやっていく。
[root@www~]#
となっている状態で
vi /etc/httpd/conf/httpd.conf
と入力して(何回か)エンター。
ずらーっと英語が出て来るので
/AllowOverride
とコマンドを打てば検索できる。
「n」 で次の検索結果へ、「N」で前へ検索していく。
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be “All”, “None”, or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
AllowOverride None
この 「None」 を 「All」 に変更する。
「i」をキーボードで押すとインサートモードになる。
つまり書き換えができる。
インサートモードで「バックスペース」で削除、普通に記入して
記入し終わったらインサートモードを止める。
「ESC」 でインサートモード終了。
続いて mod_rewrite の検索。
/LoadModule rewrite_module
LoadModule rewrite_module modules/mod_rewrite.so の先頭に # がついていれば、その # を削除。
# はコメントアウトなので、 # の行は無視される。
インサートモードを解除(コマンドモードで)
「:wq」エンターで、上書き保存。
[root@www~]# となってるところで、
service httpd restart エンター
で、 httpd を再読み込み。
これで、.htaccess が効くようになり、404は解消されるはず。