次の2つのURLに同じコンテンツが表示されることがわかりました。
http://example.com/blog/
http://example.com/blog/index.html
最初のURLの場合、blog
疑似フォルダーからindex.html
を取得するようです。これは、インデックスドキュメントとしてindex.html
が設定されているためだと思います。
ただし、ブラウザはリダイレクトされません。つまり、同じコンテンツに対して2つの異なるURLがヒットすることになります。分析などの観点から、これは苦痛です。
301を使用してS3をindex.htmlにリダイレクトできますか?またはその逆ですか?
まず、/blog/
または/blog/index.html
のいずれかのバージョンのURLにのみリンクしていることを確認します(短くてシンプルなので前者の方が望ましいです)。
SEOに関する最善の解決策は、正規のタグを使用することです。これを<head>
タグ内に配置します。
<link rel="canonical" href="http://yoursite.com/blog/">
つまり、検索エンジンは両方のURLを見ると同じように扱われ、検索エンジンからの訪問者が/blog/
ではなく/blog/index.html
にヒットするようにします。
他のサイトからのリンクがある場合は、訪問者がどこに着地するかを制御できない可能性があります。そのため、分析のためには、おそらくユーザーをリダイレクトする価値があります。
静的なサイトであることを考えると、状況にサーバー側のルールがあるかどうかはわかりませんが、.htaccess
を使用できる場合は、次のようにする必要があります。
Redirect 301 /blog/index.html /blog/
最後に、他のすべてが失敗した場合、JavaScriptを使用してユーザーをリダイレクトすることは問題ありません。
<script>
if (window.location.href.indexOf('index.html') != -1)
window.location.href = '/blog/';
</script>
<head>を開く前に、上部の/blog/index.htmlに配置します
<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location:http://www.example.com/index.html");
?>
そのため、最後にindex.htmlを持つURLが1つだけ取得されます-/ blog /にアクセスしようとすると、すべて/blog/index.htmlにリダイレクトされます
PHPをサポートしないホスティングでは、Javascriptを使用します。
<script type="text/javascript">
<!--
window.location = "http://www.example.com/blog/index.html";
//–>
</script>