web-dev-qa-db-ja.com

サイトがURLのリクエストを小文字に変換するのはなぜですか?

私のサイトでは、有効なURLのリクエストが表示されていますが、パスは小文字に変換されています。

たとえば、有効なURLはexample.com/some-product-CAT12P0.htmlです。

Apacheログにexample.com/some-product-cat12p0.htmlが表示されています。

これは私が管理するいくつかのサイトで発生しており、ユーザーエージェントにパターンが表示されません。

ログエントリの例:

45.55.65.212 - - [24/Jan/2017:06:36:57 +0000] "GET /educational-assessments-cat12p0.html HTTP/1.1" 404 6011 "http://www.example.com" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.75.14 (KHTML, like Gecko) Version/7.0.3 Safari/537.75.14"

UAは、Win/OSX/iOS/Androidなど、さまざまなブラウザにすることができます。

サイトはすべてLAMPスタックで実行されます。 mod_rewriteを使用してCAT12P0.htmlをクエリ文字列に変換し、PHPファイルに渡します。

もちろん、ソースHTMLとサイトマップを確認しましたが、mod_rewriteが期待するとおり、すべてのリンクは最後に大文字です。

これは悪いボットですか、それともリンクを小文字に変換するようにUAに伝えるために何かをすることができますか?

5
user602088

これらは通常、悪いボットからのヒットです。残念ながら、ボットがURL全体を小文字にしようとすることは非常に一般的です。大文字と小文字が混在するURLを含むWebサイトがあります。誤って小文字に変換されたURLに対して、1日に数千件のヒットがあります。昨日そうしたトップユーザーエージェントは次のとおりです。

  20494 Mozilla/5.0 (compatible; Gluten Free Crawler/1.0; +http://glutenfreepleasure.com/)
    312 Mozilla/5.0 (compatible; GrapeshotCrawler/2.0; +http://www.grapeshot.co.uk/crawler.php)
    281 Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 1.1.4322)
    252 Mozilla/5.0 (compatible; proximic; +http://www.proximic.com/info/spider.php)
     77 Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
     55 Mozilla/5.0 (iPhone; CPU iPhone OS 10_2 like Mac OS X) AppleWebKit/602.3.12 (KHTML, like Gecko) Version/10.0 Mobile/14C92 Safari/602.1
     20 YisouSpider
     15 Mozilla/5.0 (Windows NT 6.1; WOW64; rv:29.0) Gecko/20120101 Firefox/29.0
     14 ADmantX Platform Semantic Analyzer US - Turn - ADmantX Inc. - www.admantx.com - [email protected]
     13 Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36

ご覧のとおり、通常2人の大犯罪者がいますが、昨日、私のサイトのすべての小文字のURLにヒットする120の異なるユーザーエージェントがいました。

Googlebotでもいくつかのリクエストを受け取っています。これは、Googlebot自体にこの問題があるためではなく、ウェブ上のどこかですべての小文字のリンクを検出するためです。ボットだけの問題ではありません。一部の人々は、リンクする前にURL全体を小文字にします。一部のスクレイパーサイトは小文字のURLを投稿します。大文字と小文字が混在するURLの投稿を許可しないコンテンツ管理ソフトウェアパッケージもあります。

つまり、大文字と小文字が混在するURLは仕様で許可されていますが、実際にはそれらをサポートするために余分な作業が必要です。これは非常に一般的な問題であるため、すべて小文字のバージョンから大文字と小文字が混在するバージョンへの「301パーマネント」リダイレクトを配置する必要があります。

2

URLで大文字を使用することは許可され、機能しますが、全体の問題は、/a/Aが2つの異なるURLであるということです(ちょうどあなたの場合と同じです)。

これは標準であるため、クローラー、ボット、またはインデックスを作成するものがURLを小文字で呼び出すか、実行した場合に何が起こるかを想像することはそれほど難しくありません。

現在の状況を回避し、URLを簡素化するには、すべてのURLを常に小文字にすることをお勧めします。経験則として、できる限り簡単な方法で他の人にURLをtellできるようにする必要があります(「いいえ、大文字のC。いいえ、単語全体ではない」)。

大文字を簡単に使用したい場合でも、/aaa/AaAが同じように扱われるように、内部的に小文字にリダイレクトする必要があります(そうしない正当な理由がない限り)

1
Martijn