• 解決済 momo-sophia

    (@momo-sophia)


    旧サイトをWordPress対応にして、サーバ移動しました。
    新サイトでは、WordPressの404.phpを利用して、存在しないURLの時はエラーページが表示されます。

    ■質問1
    URLに「~/feed/」を指定されると、404.phpのエラーページではなく、ブラウザのエラーが出ます。
    何故でしょうか?

    ■質問2
    なぜ上記に気づいたかというと、ウェブマスターツールの健全性-クロールエラーが出ていたためです。
    他にも多数ページがエラーとなっていて、その多くが旧サイトに存在していたページです。
    旧サイトはドメインを変更して残してあります。
    リンク元は、内部のページだったり、よそのサイト(ソース表示で確認しても、うちのサイトへのリンクは無いようなのですが。)
    WordPressとはずれてしまいますが、対応方法をご存じだったらご教授願います。

15件の返信を表示中 - 1 - 15件目 (全17件中)
  • こんにちは、

    私のメモなので、間違いがあるかもしれないですが

    http://tenman.info/labo/snip/?paged=2

    トピック投稿者 momo-sophia

    (@momo-sophia)

    回答ありがとうございます。

    【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以外のパーマリンクは使えないと思います。

    他にも多数ページがエラーとなっていて、その多くが旧サイトに存在していたページです

    使えない状態で、パーマリンクの設定がしてあったので、エラーになっていたんですかね…

    今まで、エラーになっていたページは、どうなりましたか?

    トピック投稿者 momo-sophia

    (@momo-sophia)

    トップページの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です
    確認できたら、必ずファイルは削除してください

    トピック投稿者 momo-sophia

    (@momo-sophia)

    今の疑問は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>
    トピック投稿者 momo-sophia

    (@momo-sophia)

    gatespace様

    WordPressはフィードが呼び出されたと判断し(is_feed = true)、テンプレートの404.phpを返さないかも知れません。

    なんとなく分かります。

    この辺は「存在しないページ」ではなく、ドメイン名は伏せてかまいませんので、ドメイン名以下の具体的なURLを提示していただいた方が回答がつきやすいです。

    ウェブマスターの明細を消去してしまったので、実際にクロールエラーとなったURLは分からないのですが、存在しないページなら何でも同じ事象となります。
    aaaaa/feed、とか、12345/feedとか。

    Codex参照し、.htaccess ファイルを編集しましたが、やはりブラウザのエラーとなりました。

    トピック投稿者 momo-sophia

    (@momo-sophia)

    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さんのおっしゃる「エラー」が他のエラー(ステータスコード)であれば別の書き方をしなければなりません。

    トピック投稿者 momo-sophia

    (@momo-sophia)

    gatespace様

    ブラウザによって異なります。
    ●Google Chrome
    このウェブページは見つかりません
    エラー 6 (net::ERR_FILE_NOT_FOUND): 指定したファイルまたはディレクトリは見つかりませんでした。

    ●IE
    ページが見つかりませんでした

    ●FireFox
    反応せず

    ●Safari
    ソースファイルが利用できなくなったため、この配信データをアップデートできませんでした。
    記事はありません

    ステータスコードは分かりますか?

    わたしもnobitaさんの
    「なぜ、アパッチの404でなくWordPressの404にこだわるのかなぁと思って」に同意です。

    あと、上の情報だけではステータスコードは分かりません。
    正直WordPressの話題からかなり離れますので、
    「ステータスコード 確認」等で検索すればどうやればやり方は出てきますので、
    ご自分の環境に合わせて確認してみてください。

    こんにちは

    動作確認済みのまとめ作りました。

    http://tenman.info/labo/snip/?p=2188

    のAsideです。

    momo-sophia さんOKですか?

    トピック投稿者 momo-sophia

    (@momo-sophia)

    なぜ、アパッチの404でなくWordPressの404にこだわるのかなぁと思って

    こだわるというか、そういう動きをしなければいけないのかと思っていました。

    アパッチの404でも構わないのですが、せっかくなので、もう少しお付き合いいただけたらと思います。

    nobita様
    提案いただいた解決案ですが、WordPressの404は利用せず、常にカスタムエラーページを表示する、という理解でよいですか?
    実施してみましたができず、ステータスコードが404じゃないのではと思っていて、ここでは話題がずれるとのことで、後追いしません。

    WordPressの404は利用せず、常にカスタムエラーページを表示する、という理解

    だけ確認させてください!

15件の返信を表示中 - 1 - 15件目 (全17件中)

トピック「404.phpのエラー」には新たに返信することはできません。