専用サーバーに drupal サイトがあり、人々は IP アドレスから私のサイトにアクセスできます。また、Google ボットはいくつかのページをインデックスに登録しました。
.htacces ファイルから 301 リダイレクトを行うことを考えました。効率の良い方法ですか?
この状況下で私は何をすべきですか?
私の意見では、リダイレクトの代わりに mod_rewrite を使用する必要があります (Web サーバーが Apache の場合)。.htaccess のようなものを追加することによって
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www.mydomain.com$ [NC]
RewriteRule ^(.*)$ http://www.mydomain.com/$1 [L,R=301]
</IfModule>
Apache に、www.mydomain.com/ の形式でサイトのフォルダーへの道を見つけるすべての http 要求を書き直し、301 ヘッダーを送信して、これが使用すべき正しい URL であることをボットに通知するように指示します。
これを機能させるには、Apache 構成で mod_rewrite が有効になっていることを確認する必要があります。
わかりましたので、「IPアドレスへのアクセスをやめて、代わりにドメインを使用してください」と言えない場合は、仮想ホストを作成して、サイトへのすべての着信トラフィックを受信し、.htaccessまたは単純なJavascriptでリダイレクトします.また、この 2 番目のオプションを使用すると、「サイトが移動しました。domain.com にリダイレクトしています...」などのカスタム メッセージを追加できます。
<script language="javascript">alert("Site has moved, redirecting to domain.com ..."); self.location=”domain.com”;</script>
これは、ユーザー トラフィックに対してのみ機能します。
Windows を使用している場合は、"hosts" ファイルを変更するよう依頼するのも 1 つの方法です。C:\Windows\System32\drivers\etc 「hosts」ファイルをメモ帳にドラッグ アンド ドロップします。ファイルの最後に次のような行を追加します: 127.0.0.1 mydedicatedsite.com ここで、番号は IP アドレスになります。ファイルを保存。
そのファイルを保存するには追加のアクセス許可が必要な場合があるため、現在のユーザーまたは "Everyone" Windows ユーザーに一時的なアクセス許可を与えるだけです。
また、実行するだけのバッチ ファイルを作成して、作業を簡単にすることもできます。
最後に、ドメインが存在しない場合でも、指定された IP でサイトにリダイレクトされます。
クライアントが適切な HTTP Host ヘッダー フィールドを送信するかどうかを確認します。そうでない場合はリダイレクトします。もちろん、これは、クライアントが RFC 2616 への準拠を拒否した場合に問題を引き起こします。
もう 1 つのオプションは、有効な HTTP Host ヘッダー フィールドを含まないリクエストに応答するデフォルトの仮想ホストを Apache に設定することです。