web-dev-qa-db-ja.com

301リダイレクトページのHTMLをドキュメントに挿入すると、実際の301リダイレクトと同じ機能が実行されますか?

Webデバッガーでは、301リダイレクトページのhtmlは次のように表示されます。

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>301 Moved Permanently</title>
</head><body>
<h1>Moved Permanently</h1>
<p>The document has moved <a href="http://www.website.com/webpage.htm">here</a>.</p>
</body></html>

サーバーサポートなしでhtmlページをリダイレクトする必要があります。ページhtmlを上記のコードで置き換えた場合、Apacheの.htaccessに301リダイレクトを記述するのと同じように機能しますか?私はグーグルでこれを調べましたが、301リダイレクトについて話しているサイトはhtmlページをリダイレクトするためのこのオプションをカバーしていませんでした。

15
JMC

理想的には、301 HTTP応答ステータスコードを送信します。それができない場合、即時のメタリフレッシュも機能し、 検索エンジンに応じて301または302リダイレクトとしてカウントされます になります。

<meta http-equiv="refresh" content="0;url=http://example.com/new.html">

リフレッシュレートは、30xリダイレクトと見なされるためにはゼロでなければなりません。

18
John Conde

いいえ、単にHTMLを例に置き換えるだけでは、探している効果は得られません。 Apacheは '200'ステータスコードを一緒に送信するため、ユーザーにそのページを表示するだけです。ユーザーはリンクをクリックしてページを見つけることができますが、自動的に行われることはなく、スパイダーはリソースの永続的なリダイレクトを実行するつもりであることを知りません。

.htaccessまたはApache confファイルのいずれかで適切なRedirectまたは_mod_rewrite_ディレクティブを使用する必要があります。

また、実際にPHPなどを使用している場合は、戻りコードを301に設定し、Location応答ヘッダーを出力すると、ページベースのソリューションが機能します。 PHPでは、次のようになります。

<?php
header( "HTTP/1.1 301 Moved Permanently" );
header( "Location: http://www.new-url.com" );
10
Hissohathair

あなたのアプローチは実際にはリダイレクトされないという点で、Hissohathairに同意してください。ユーザーはリンクをクリックすることを知っているかもしれませんが、元のページは通常の '200'ステータスコードを返し、検索結果に表示され続けます(おそらくあなたが望んでいるものではないでしょう)。

ページランクを維持するには、301ステータスコードが非常に重要です。メタリフレッシュタグを追加することも適切なオプションであり、ほとんどの場合(ジョンの応答による)に役立ちますが、将来的には検索エンジンがそれを301リダイレクトとして受け入れることを保証できない場合があります。適切なリダイレクトを.htaccess(またはApache confファイル)に追加することが、301ステータスコードが送信されることを保証するための最良のオプションです。

編集:

=======================

IIS7 Webサイトの場合、IIS URL書き換えモジュールがインストールされている限り、サイトのweb.configでリダイレクトルールを作成できます。これらのルールは.htmlファイルにも適用されます。詳細はこちら:

http://learn.iis.net/page.aspx/461/creating-rewrite-rules-for-the-url-rewrite-module/

=======================

Webホストに.htaccess/mod_rewrite機能がない場合の別の選択肢は、サーバー側リダイレクトをセットアップできる場所を使用しているWebホストを変更することです。サイトが適切に移動される限り、ユーザーにとってはかなりシームレスなはずです。この方法は、ページランクを維持することが非常に重要な場合にのみ、極端な場合に使用します。

3
Rob