フォーラムへの返信

15件の返信を表示中 - 1 - 15件目 (全15件中)
  • トピック投稿者 toshichan

    (@toshichan)

    > これらを404とすることは、何が有効なパラメータで、何を無効とするか、無限の組み合わせ
    > を判定させる必要があり、基本的には困難です。
    了解しました。
    このタイプの異常なURLはほんの一部だけなので、このまま放置とします。

    何度も丁寧にご説明いただき、ありがとうございました。

    トピック投稿者 toshichan

    (@toshichan)

    jim912様、ありがとうございました。

    > wp-includes/functions.php に記述していませんか?
    そのとおりでした。
    「status_header」をキーワードにしてgrepをかけたら、wp-includes/functions.phpがヒットしたので、てきっりこれかなと・・・。

    ご指摘いただいたようにテーマ内のindex.phpとfunctions.phpを修正したら動作しました。

    感謝感激です。

    ところで、便乗で質問です。

    この対策により、ほとんどの存在しないURLは404扱いに出来ました。
    しかし、実際にGoogleにインデックスされた存在しないURL(以下のURLの/wordpress/以下は実データです)を使ってテストすると、一部のURLで404に出来ないものがありました。

    例えば、
    ① p → p__
    ② cat → cat9  :本来はcat=9だと推測される。
    ③ m → m201106  :本来はm=201106だと推測される。
    ④ p → p1469  :本来はp=14699だと推測される。

    特に②~④はパラメータのイコール(=)が抜けてしまったようなURLです。

    http://www.example.com/wordpress/?m201106&paged2&paged=16

    http://www.example.com/wordpress/?p__&paged=10

    http://www.example.com/wordpress/?cat9&paged=6

    http://www.example.com/wordpress/?p1469&paged=13

    このようにパラメータ文字自体が存在しない文字列に変わってしまった場合は対策出来るのでしょうか?

    よろしくお願いします。

    トピック投稿者 toshichan

    (@toshichan)

    jim912様、ありがとうございます。

    使っているテーマはglassです。・・・かなり古い。
    このテーマの中身を調べたら404.phpがありませんでした。
    おそらくこれが原因だろうと思います。
    ちなみにfunctions.php に教えて頂いたコードをそのまま貼り付けると画面が真っ白になってしまいました。

    この対策を行うきっかけは、Googleのウェブマスターツールで「タイトルタグ」「重複するメタデータ(descriptions)」に重複を指摘され、その都度.htaccessを使って正しいURLに転送していましたが、いたちごっこになってしまいました。
    ちょうど1週間おきに新しい重複を指摘され、.htacessを修正する感じです。

    http://www.example.com/wordpress/?p=ecrdqxqugwzb&paged=12

            ↓・・.htaccessで転送する。

    http://www.example.com/wordpress/?paged=12

    そこで思い切ってディレクトリ名をwordpressからblogに変更し、個別記事とカテゴリだけ301転送しましたが、転送先のディレクトリでも再度同じようなことになったら嫌だったので、先に手を打っておこうと思い、対策方法を質問しました。

    > ※ WordPressをバージョンアップする際に戻ってしまいますよね?
    なんとなく、そんな気がしていました。

    404エラー画面が表示されなくてもレスポンスコードの404が返れば目的は達成できますが、バージョンアップでfunctions.phpが元に戻ってしまうのは嫌ですね。
    悩みどころです。

    トピック投稿者 toshichan

    (@toshichan)

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

    以下のように記述したところ、タブに「ページが見つかりませんでした。」と表示されたため、404が返ってきているようですが、404エラーのページに画面が遷移しません。
    「// $wp_query->set_404()」のコメントは外しています。
    どこが間違っているのでしょうか?
    申し訳ありませんが、よろしくお願いします。

    修正箇所
    ・function check_invalid_query_vars( $wp )は修正なし。
    ・function status_header( $code ) の最終行にadd_action( ‘wp’, ‘check_invalid_query_vars’ );を追加した。

    function status_header( $code ) {
            $description = get_status_header_desc( $code );
            if ( empty( $description ) )
                    return;
            $protocol = $_SERVER['SERVER_PROTOCOL'];
            if ( 'HTTP/1.1' != $protocol && 'HTTP/1.0' != $protocol )
                    $protocol = 'HTTP/1.0';
            $status_header = "$protocol $code $description";
    
            if ( function_exists( 'apply_filters' ) )
                    $status_header = apply_filters( 'status_header', $status_header, $code, $description, $protocol );
            @header( $status_header, true, $code );
            add_action( 'wp', 'check_invalid_query_vars' );
    
    }
    function check_invalid_query_vars( $wp ) {
            global $wp_query;
            if ( ! is_admin() && $wp_query->is_main_query() ) {
                    foreach ( $wp->query_vars as $key => $val ) {
                            $wp_query_var = (string)$wp_query->get( $key );
                            if ( $wp_query_var != $val ){
                                    $wp_query->set_404();
                                    status_header( 404 );
                                    break;
                            }
                    }
            }
    }
    トピック投稿者 toshichan

    (@toshichan)

    世話役様

    タイトルが消える件は調査中なんですね。
    了解しました。

    トピック投稿者 toshichan

    (@toshichan)

    Mako様、回答ありがとうございました。

    既に2年ほどWordpressを使っているのにこんな変換を自動でやっているなんて知りませんでした。

    ソースコードを書いているページが他にも有る筈なので、個別対応はちょっと・・・
    そこでfunctions.phpに本文のみwptexturizeを無効にするようにフィルターをかけました。

    ところでこの質問を書き込んだときに、何故かタイトルが空欄になってしまい、以下の一覧画面からこのトピックスを選択出来ませんでした。
    http://ja.forums.wordpress.org/forum/2

    Mako様は、どのようにしたらこの画面に遷移出来ましたか?
    私は回答のメールが来たので、そのリンクから直接この画面にジャンプしました。
    もし、回答のメールが届かなかったら、この画面を見ることが出来ませんでした。

    また、質問を書き込んだ時にタイトルが空欄になった原因は分かりますか?
    メールで届いたこの質問のタイトルが文字化け(置き換わってし㍊)したのですが、これと関係ありますか?
    メールタイトルにwptexturizeの変換対象の文字を書くとダメ?とか。

    以下はメールで届いたタイトルです。
    [日本語] 投稿画面で入力した半角の””が閲覧画面では全角に置き換わってし㍊From: “WordPress.org” <noreply@wordpress.org>

    これが原因で、ブラウザを変えたり条件を変えて4件同様の質問をしたため、重複した質問が「バグ報告と提案」に4件あります。
    もし、理由がお分かりであれば、以下のトピックの方にレスしていただきたく。
    よろしくお願いします。
    http://ja.forums.wordpress.org/topic/42944?replies=3#post-87218

    トピック投稿者 toshichan

    (@toshichan)

    皆さん、回答ありがとうございます。

    既に2年ほどWordpressを使っているのにこんな変換を自動でやっているなんて知りませんでした。

    ソースコードを書いているページが他にも有る筈なので、個別対応はちょっと・・・
    そこでfunctions.phpに本文のみwptexturizeを無効にするようにフィルターをかけました。

    ところでこの質問を書き込んだときに、何故かタイトルが空欄になってしまい、以下の一覧画面からこのトピックスを選択出来ませんでした。
    http://ja.forums.wordpress.org/forum/2

    皆さんは、どのようにしたらこの画面に遷移出来ましたか?
    私は回答のメールが来たので、そのリンクから直接この画面にジャンプしました。
    もし、回答のメールが届かなかったら、この画面を見ることが出来ませんでした。

    また、質問を書き込んだ時にタイトルが空欄になった原因は分かりますか?
    メールで届いたこの質問のタイトルが文字化け(置き換わってし㍊)したのですが、これと関係ありますか?
    メールタイトルにwptexturizeの変換対象の文字を書くとダメ?とか。

    以下はメールで届いたタイトルです。
    [日本語] 投稿画面で入力した半角の""が閲覧画面では全角に置き換わってし㍊From: “WordPress.org” <noreply@wordpress.org>

    フォーラム: その他
    返信が含まれるトピック: フォーラム(使い方)への書き込みが表示されない

    「バグ報告と提案」へ1月14日 12時20頃 質問を投稿しましたが、タイトルが空白になり投稿できませんでした。
    投稿を選択できないので削除も不可能。

    そのため、ブラウザを変えたりタイトルの内容を変えたり条件を変えて4件投稿しましたが、すべてダメでした。

    新規の投稿ができないと思い、こちらのスレッドに追加しましたが、何か障害が発生していますか?

    フォーラム: 使い方全般
    返信が含まれるトピック: Captchaが効かないスパムコメントの対策
    トピック投稿者 toshichan

    (@toshichan)

    nobita様

    詳しい説明ありがとうございます。
    コメントの妨げになるようなものは出来る限り入れたくないので、Captchaを外した上でスパム対策用プラグインはAkismetとスパムバイバイだけですが、2日間に渡って1件もスパムが書き込まれていません。
    当面、これで運用してみます。

    フォーラム: 使い方全般
    返信が含まれるトピック: Captchaが効かないスパムコメントの対策
    トピック投稿者 toshichan

    (@toshichan)

    windows-user様
    SPAM-BYEBYEを導入し、プラダとかフェラガモとかNGワードを登録して12時間経したところですが、1件もスパムコメントが登録されなくなりました。
    今までは2時間に1件は書き込まれていたので、大成功です。
    ありがとうございました。

    nobita様
    デスクトップにフォームをコピーして、いざ投稿しようとしたら投稿ボタンが無くて書き込めませんでした。
    ところで、仮にこのような方法を使ったと仮定して、自動投稿ツールからCaptchaの回避は可能でしょうか?
    つまり、サイトにCaptchaを導入しても、スパマーがCaptchaの無い画面(自動投稿するツール?)を用意して書き込むことが可能かどうか。
    事実、私のサイトではCaptchaを導入してもスパムコメントが書き込まれており、しかも24時間いつでも書き込まれるので、もし人が書き込んでいるなら、いつ寝ているのだ?と言うことになります。
    ツールを使って自動投稿しているのだと思いますが、自動投稿ツールにCaptchaを回避できるのだろうか?と思いました。

    フォーラム: 使い方全般
    返信が含まれるトピック: Captchaが効かないスパムコメントの対策
    トピック投稿者 toshichan

    (@toshichan)

    windows-user様、アドバイスありがとうございます。

    Captchaを使う前は「Throws SPAM Away」(ほぼSPAM-BYEBYEと同じ)を使っていましたが、サイトURLがチェック対象になっていなかったので、排除できませんでした。

    しかし、SPAM-BYEBYEのチェック対象はURLも含まれているので、排除できるかもしれません。
    早速確かめてみます。

    [チェック対象]
    author 名前欄の入力値
    url   url欄の入力値
    content コメント欄の入力値

    トピック投稿者 toshichan

    (@toshichan)

    jim912様

    勘違いしていたみたいです。

    WordPressのデータべース=MySQLだと思っていたので、もう1個MySQLを入れないとダメだと思っていました。
    今、phpMyAdminをみたら、いくつかデータベースが有って、その一つがWordpressでした。
    これならもう1個データベースの名前を変えて作成すれば良いですね。

    ありがとうございました。

    トピック投稿者 toshichan

    (@toshichan)

    「実在しないURL」と一口に言っても違うわけですね。
    確かにおっしゃるとおりです。
    ひじりさん、gatespaceさん丁寧な解説ありがとうございました。

    トピック投稿者 toshichan

    (@toshichan)

    Googleウェブマスターツールのフォーラムで聞いてみました。
    私がやったrobots.txtによるブロックはGoogleでは推奨しないみたいです。
    対策方法は以下のとおり

    「今のGoogleは重複URLをrobots.txtでブロックするのを推奨していません。
    301リダイレクトするか、rel=”canonical”を使うか、Googleウェブマスターツール で「URLパラメータ」を設定するのが適切かと判断します。」

    との回答を得ました。
    具体的にURLパラメータの指定方法は以下のとおり。

    「URLパラメータで「category_name」の処理を「クロールしない」に設定してみては?
    このパラメータを含んだURLをクロールしなくなります。」

    これでこの問題をクローズさせていただきます。

    トピック投稿者 toshichan

    (@toshichan)

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

    当初、ワードプレスで対策することを考えていましたが、皆様の回答をみると別の方法で対策を教えていただき、それならrobots.txtを使用してcategory_nameをブロックすることを思いつきました。

    文字列?category_nameのあるURLを拒否

    Disallow: /*?category_name

    ウェブマスターツールのテスト結果を見る限り大丈夫そうです。

    テスト結果
    Url
    http://・・省略・・/wordpress/?cat=8&paged=4

    Googlebot
    許可済み

    Googlebot-Mobile
    許可済み

    テスト結果
    Url  
    http://・・省略・・/wordpress/?category_name=%E3%83%91%E3%82%BD%E3%82%B3%E3%83%B3&paged=4

    Googlebot
    行 4: Disallow: /*?category_name によってブロックされています

    Googlebot-Mobile
    行 4: Disallow: /*?category_name によってブロックされています

    ところで、ウェブマスターツールの重複件数が下がったことを確認してから本件をクローズにしたいと思いますので、今しばらく未解決ということにさせてください。
    よろしくお願いします。

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