404.phpのエラー
-
旧サイトをWordPress対応にして、サーバ移動しました。
新サイトでは、WordPressの404.phpを利用して、存在しないURLの時はエラーページが表示されます。■質問1
URLに「~/feed/」を指定されると、404.phpのエラーページではなく、ブラウザのエラーが出ます。
何故でしょうか?■質問2
なぜ上記に気づいたかというと、ウェブマスターツールの健全性-クロールエラーが出ていたためです。
他にも多数ページがエラーとなっていて、その多くが旧サイトに存在していたページです。
旧サイトはドメインを変更して残してあります。
リンク元は、内部のページだったり、よそのサイト(ソース表示で確認しても、うちのサイトへのリンクは無いようなのですが。)
WordPressとはずれてしまいますが、対応方法をご存じだったらご教授願います。
-
回答ありがとうございます。
【File not foundが表示(WordPressのnot foundでないもの )される場合】
を参照すればよいのですよね?Step 1
functions.phpに以下を記述て、デフォルトフィードを、確認する。function.phpにコードを追記したら、トップページにURLが表示されました。
トップページのURL/feed
これがデフォルトフィードでしょうか。Step 2
デフォルトフィードにアクセスする。文字化けしたので、function.phpを戻して再度アクセスしたところ、フィード購読の画面になりました。
何を確認していいのか、よくわかりません。ちなみに、パーマリンクはカスタム設定しており、デフォルトに戻したところ
トップページのURL/?feed=rss2
となりました。.htaccessファイルは存在します。
phpinfo.phpを確認しましたが、mod_rewriteの記載はありません。文字化けしたので、function.phpを戻して再度アクセスしたところ、フィード購読の画面になりました。
何を確認していいのか、よくわかりません。正常に戻ったという事でしたら、
functions.phpを戻した時に、改行かなんかも、一緒に削除されてフィードがエラーを吐かなくなったか、キャッシュをきれいにしたので、戻ったという事だと思います。
mod_rewriteの記載はありません。
mod_rewriteがないと、default以外のパーマリンクは使えないと思います。
他にも多数ページがエラーとなっていて、その多くが旧サイトに存在していたページです
使えない状態で、パーマリンクの設定がしてあったので、エラーになっていたんですかね…
今まで、エラーになっていたページは、どうなりましたか?
トップページのURL/feedは、フィード購読の画面になりますが、
存在しないページ/feed、だとWordPressじゃない404エラーとなるようです。
仕方ないのかな??mod_rewriteの設定、どこで確認するのですか?
トップページのURL/phpinfo.phpで検索しても、存在しないようです。
でも、パーマリンクのカスタム設定は使えています。あまり詳しくないので、わかりづらい説明で申し訳ないです。
こんにちは
リンク先間違っていました
http://tenman.info/labo/snip/?p=2188パーマリンクのカスタム設定は使えています。
ならば、mod_rewriteモジュールはロードされています。
他にも多数ページがエラーとなっていて、その多くが旧サイトに存在していたページです。
この件は、解決したという事ですね。
私の書いたリンク先のドキュメントが解りにくかったですね。あとで直しておきます。:)
mod_rewriteの設定、どこで確認するのですか?
mod_rewriteが有効になっているかどうか、調べ方を 一応書いておきます。「phpinfo.phpを確認しましたが、mod_rewriteの記載はありません。」との事だったので、なかったのかと思っていましたが、まだ、確認が出来ていないなら以下のようにファイルを作成して、アップロードしてアクセスしてください。
ファイル名 phpinfo.php
作成したファイルに、以下のように記述してワードプレスをインストールしたディレクトリにアップロードしてください。<?php phpinfo(); ?>ブルーのテーブルが表示されれば、成功です。
Loaded Modules という項目に、mod_rewrite の記載があればOKです
確認できたら、必ずファイルは削除してください今の疑問は3点ありまして。。
●クロールエラーの件
解決していないです。
旧サイトにrobots.txtをアップロードして、様子見中です。
ただ、実害はないので、最悪わからなくてもよいかと思っています。●mod_rewriteの件
phpinfo.phpで表示されるテーブルに、mod_rewriteの記載がありません。
紫とグレーのテーブル(PHP Version 5.2.17)
Loaded Modulesという項目もありません。
Additional Modulesならありますが、対象Modulesがないようです。
ちなみに、さくらインターネットのスタンダードプランです。●feedの件(WordPressでないNotFound)
これが一番知りたいです。
mod_rewriteは関係あるのでしょうか?横からスイマセン。
まず、できるところから。●mod_rewriteの件
さくらインターネットのスタンダードプランなら使えます。
nobitaさんも書かれているようにカスタムパーマリンクが使え(=.htaccsessが適切に作成されている)、個別の投稿や固定ページが表示されているのであれば、問題ありません。※後出しでサーバー情報を出すよりは、先に
「問題解決のためのチェックリスト」をお読みになって、トラブルシューティングを試したり、「投稿に記載する内容」に書かれている情報を提示された方が回答がつきやすいです。・フィードの件
WordPressで生成されルフィードには種類があります。- サイト全体(post_type=post)
- コメント(サイト全体および投稿単位)
- カテゴリー・タグ、それぞれのアーカイブ
- 著者アーカイブ
- 検索結果
URLによってどのクエリを呼び出し、適切なテンプレートを呼びただすか、という処理は
parse_query()という関数で行われています。momo-sophiaさんの書かれている「存在しないページ/feed」というのが、上記に当てはまらないフィードであっても、URL(クエリ)に「feed」が入っているので、WordPressはフィードが呼び出されたと判断し(is_feed = true)、テンプレートの404.phpを返さないかも知れません。
この辺は「存在しないページ」ではなく、ドメイン名は伏せてかまいませんので、ドメイン名以下の具体的なURLを提示していただいた方が回答がつきやすいです。なおCodexに404ページについて書かれてありましたので、あわせてご参照ください。
http://wpdocs.sourceforge.jp/Creating_an_Error_404_Page
このページの「サーバーが 404 ページを見つけるのを助ける」の部分。momo-sophiaさん
注意してほしいのですが、質問攻めは、解決の道を閉ざします。
momo-sophiaさんが、パーマリンクに関して、いま、どのような設定になっているのか、feed以外のファイルにアクセスできるようになったのか、ならないのかこちらには情報がありません。旧サイトにrobots.txtをアップロードして、様子見中です。
書いてほしいのは、robots.txtになにを記述し、どういう結果を待っているのか、という点です。
sitemap.xmlにアクセスできないファイルがあるから、クロール出来ないんじゃないですか?phpinfo.phpで表示されるテーブルに、mod_rewriteの記載がありません。
無いのであれば、デフォルト以外のパーマリンク設定は、使えません。
パーマリンクのカスタム設定は使えています。
と答えてみえますが、私の理解では、説明が出来ません
●feedの件(WordPressでないNotFound)
これが一番知りたいです。
mod_rewriteは関係あるのでしょうか?関係あります としか答えられないです
mod_rewriteについては、Apacheのモジュールの問題なので、レンタルサーバーのコミュニティなどで、相談してみてください。:)
おまけ
なぜ、アパッチの404でなくWordPressの404にこだわるのかなぁと思って、100%想像力による解決案フィードをfetchしているですかね?
ならば、以下のようなカスタムエラーページ作ればいいんじゃないかと思います。
はずれたら、ごめんなさい<?xml version="1.0" encoding="UTF-8"?> <rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" > <channel> <title>ページが見つかりませんでした/title> <atom:link href="http://example.com/wp/prev/nomore/feed/" rel="self" type="application/rss+xml" /> <link>http://example.com/wp/prev</link> <description>Just another site</description> <lastBuildDate>Thu, 08 Nov 2012 09:03:00 +0000</lastBuildDate> <language>ja</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.4.2</generator> </channel> </rss>gatespace様
WordPressはフィードが呼び出されたと判断し(is_feed = true)、テンプレートの404.phpを返さないかも知れません。
なんとなく分かります。
この辺は「存在しないページ」ではなく、ドメイン名は伏せてかまいませんので、ドメイン名以下の具体的なURLを提示していただいた方が回答がつきやすいです。
ウェブマスターの明細を消去してしまったので、実際にクロールエラーとなったURLは分からないのですが、存在しないページなら何でも同じ事象となります。
aaaaa/feed、とか、12345/feedとか。Codex参照し、.htaccess ファイルを編集しましたが、やはりブラウザのエラーとなりました。
nobita様
文章が下手ですみません。phpinfo.phpで表示されるテーブルにmod_rewriteの記載がなくても、パーマリンクのカスタム設定ができるようです。
これについては、実際にできているので、済とさせていただきます。もともとの質問に戻ってもいいですか?
■質問1
URLに「~/feed/」を指定されると、404.phpのエラーページではなく、ブラウザのエラーが出ます。
何故でしょうか?gatespace様の回答より、WordPressはフィードが呼び出されたと判断し、404.phpを返さない、と理解しました。
■質問2
なぜ上記に気づいたかというと、ウェブマスターツールの健全性-クロールエラーが出ていたためです。
他にも多数ページがエラーとなっていて、その多くが旧サイトに存在していたページです。
旧サイトはドメインを変更して残してあります。旧サイトが検索対象となり、中に記載のあるURL(新サイトでは存在しないURL)がエラーになるのではと考え、robots.txtでサイト全体をブロックしました。
どういう結果を待っているのか
このまま新しいエラーが出なければ、済でよいのかと思っています。
これについては、質問投稿したあと思いついたので、突然の記載になり申し訳ないです。momo-sophiaさんのおっしゃる「エラー」が具体的でないので答えづらいです。
エラーと言ってもサーバーの返すエラーは様々です。Codexに書いてある
ErrorDocument 404 /index.php?error=404
は、サーバーから404というエラー(ステータスコード)が帰ってきたら、 404.php テンプレートファイルを返すという意味です。もし、momo-sophiaさんのおっしゃる「エラー」が他のエラー(ステータスコード)であれば別の書き方をしなければなりません。
gatespace様
ブラウザによって異なります。
●Google Chrome
このウェブページは見つかりません
エラー 6 (net::ERR_FILE_NOT_FOUND): 指定したファイルまたはディレクトリは見つかりませんでした。●IE
ページが見つかりませんでした●FireFox
反応せず●Safari
ソースファイルが利用できなくなったため、この配信データをアップデートできませんでした。
記事はありませんステータスコードは分かりますか?
わたしもnobitaさんの
「なぜ、アパッチの404でなくWordPressの404にこだわるのかなぁと思って」に同意です。あと、上の情報だけではステータスコードは分かりません。
正直WordPressの話題からかなり離れますので、
「ステータスコード 確認」等で検索すればどうやればやり方は出てきますので、
ご自分の環境に合わせて確認してみてください。なぜ、アパッチの404でなくWordPressの404にこだわるのかなぁと思って
こだわるというか、そういう動きをしなければいけないのかと思っていました。
アパッチの404でも構わないのですが、せっかくなので、もう少しお付き合いいただけたらと思います。
nobita様
提案いただいた解決案ですが、WordPressの404は利用せず、常にカスタムエラーページを表示する、という理解でよいですか?
実施してみましたができず、ステータスコードが404じゃないのではと思っていて、ここでは話題がずれるとのことで、後追いしません。WordPressの404は利用せず、常にカスタムエラーページを表示する、という理解
だけ確認させてください!
トピック「404.phpのエラー」には新たに返信することはできません。