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は解消されるはず。