2

だから私は、このタイプの入力を使用するカスタムメイドのサイトを持っています:

example.com/?id=4e2dc982

または、これも機能します:

example.com/index.php?id=4e2dc982

しかし、何らかの理由でこれを取得しようとする GoogleBot からのヒットがログに表示されるようになりました。

example.com/index.php/?id=4e2dc982

さらに悪いことに、これは実際に機能し、正しい GET パラメータでページをプルしますが、余分な '/' のためにすべてのリンクと参照が機能しません。適切な「example.com/image.jpg」をロードする代わりに「image.jpg」をロードしようとすると、「example.com/index.php/image.jpg」をロードしようとします。これを修正するにはどうすればよいですか?戻ってすべてのリンクを置き換えて絶対パスを使用できることは知っていますが、それはばかげています。余分な「/」を含むリンクは、そもそも機能しないはずです。

アップデート:

修正を見つけましたが、なぜこれが許可されているのかまだわかりません。私は行きました:

http://ca1.php.net/manual-lookup.php?pattern=test

そして、次のことが可能かどうかを確認しようとしましたが、十分に機能することを確認してください。

http://ca1.php.net/manual-lookup.php/?pattern=test

しかし、彼らのページは壊れません。だから私はそれを見て、理由を見つけました:

<base href="http://ca1.php.net/manual-lookup.php" />

したがって、基本的に、すべての PHP スクリプトは追加の / を受け入れるようですが、すべてのリンクを絶対パスでコーディングしたり、ベース タグを使用したりしないと、誰かが追加の '/' を追加するたびにサイトが台無しになります。

4

2 に答える 2

1

どこかからリンクする必要があり、どこから把握する必要があります。Google サイト検索 (つまり、site:yoursie) を使用して把握することができます。現時点での 1 つの提案は、正規タグ http://googlewebmastercentral.blogspot.com.au/2009/02/specify-your-canonical.htmlを使用することです。

于 2012-10-25T23:07:28.270 に答える
0

実際にできることの 1 つは、ヘッダーまたはブラウザー エージェントを取得することだと思います (一部のブラウザーはこれを送信しませんが)。次に、ヘッダーに Google のようなものが含まれている場合は、ボットによるページのクロールを許可しないか、ユーザーをサイトにリダイレクトします。以下に例を示します。

$browser = $_SERVER['HTTP_USER_AGENT'];
checkbrowser($browser); //Calls checkbrowser(); with the browser version.
function checkbrowser($analyze) {
    $searchwords = array("bot","google","crawler");

    $matches = array();
    $matchFound = preg_match_all(
                "/\b(" . implode($searchwords,"|") . ")\b/i", 
                $analyze, 
                $matches
        );

        if ($matchFound) {
            $words = array_unique($matches[0]);
            foreach($words as $word) {
            if($word == "bot") {
                echo "Sorry, bots are not allowed to crawl this specific page.";
                die(); //Terminate the script and leave the bot with that message so it cannot crawl.
            }
        }
    }

}

これは私がよく行う方法ですが、さまざまなことにこの方法を使用しています。を自分に最適なものに変更することで、機能を変更でき$searchwordsます。

于 2012-10-25T23:12:05.573 に答える