2

リンクが重複する問題に直面しています (Google ウェブマスター ツールによると)。

たとえば、Google は 4 種類の URL を実際の URL の複製としてリストしました

1) mysite.com/k-Summer Season-10.htm
2) mysite.com/k-Summer%20Season-10.htm
3) mysite.com/k-summer-season-10.htm (actual link)
4) mysite.com/K---10.htm

4 番目のリンクの構造を見ると、/k- AND -10.htm の間に何を記述しても、ページ番号 10 のコンテンツが取得されることが明確に示されています。これは、以下のようなものです。

1) mysite.com/k-Summer Season-10.htm
2) mysite.com/k-Bummer%20Season-10.htm
3) mysite.com/k-Dumber-season-10.htm
4) mysite.com/K-Mars-&-Earth-Season-10.htm

残りの URL (大文字と小文字を区別し、スペースを含む) を開くことを禁止し、404 エラーを発生させるか、実際のリンクにリダイレクトする方法はありますか?

以下は私の.htaccessのコードです

RewriteEngine On

RewriteRule ^lightbox.htm$ lightbox.php?%{QUERY_STRING}
RewriteRule ^lightbox.([0-9]+).htm$ lightbox.php?page=$1&%{QUERY_STRING}
RewriteRule ^search.htm$ search.php?%{QUERY_STRING}
RewriteRule ^search.([0-9]+).htm$ search.php?page=$1&%{QUERY_STRING}
RewriteRule ^postcard([a-zA-Z0-9]+).htm$ postcards.php?postcard_id=$1&%{QUERY_STRING}
RewriteRule ^postcard.img([0-9]+).htm$ postcards.php?image_id=$1&%{QUERY_STRING}
RewriteRule ^k-(.*)-([0-9]+).htm categories.php?cat_id=$2&%{QUERY_STRING}
RewriteRule ^cat.htm$ categories.php?%{QUERY_STRING}
RewriteRule ^r-(.*)-([0-9]+).htm details.php?image_id=$2&%{QUERY_STRING}
RewriteRule ^r([0-9]+).search.htm details.php?image_id=$1&%{QUERY_STRING}

ErrorDocument 404 /404.php

RewriteRule ^sitemap.xml$ google.php

敬具

ジョジャフ

4

1 に答える 1

3

<link rel="canonical" />タグを指定してみてください:

<link rel="canonical" href="http://mysite.com/k-summer-season-10.htm" />

StackOverflow がこれを行います - このページのソースを見てください。詳細はこちら


または、PHP スクリプトで元の URL を実際の URL と照合し、必要に応じてユーザーを実際の URL にリダイレクトすることもできます。書き換えルールの前に元の URL を取得する方法の詳細については、この質問を参照してください。


最後に、なぜ.htmすべての URL で接尾辞を使用しているのですか? URL 書き換えスキームの利点の 1 つは、URL を乱雑にするためにそのようなものを必要としないことです。

于 2012-05-17T19:50:49.027 に答える