2

古いWebサイトを再構築していますが、多くのファイルがあり、サーバー上のより適切なディレクトリに移動されています。したがって、明らかに、Googleがそれらのページに対して持っていたすべてのURLは、それらがもう存在しないため、404を返します。しかし、私はグーグル(そして他の人たち)にそれらのページがまだ存在していること、そしてそれらがどのディレクトリに存在するかを知ってもらいたい。

しかし、多くの異なるページに対してどのようにそれを行うのでしょうか?

4

2 に答える 2

2

古いリンクを新しいドメインにリダイレクトする必要があります。これがあなたがそれをする方法です。

phpの使用:

<?
 Header( "HTTP/1.1 301 Moved Permanently" );
 Header( "Location: http://www.new-url.com" );
?>

asp.netの使用:

<script runat="server">
private void Page_Load(object sender, System.EventArgs e)
{
 Response.Status = "301 Moved Permanently";
 Response.AddHeader("Location","http://www.new-url.com");
 }
</script> 

RORの使用:

def old_action
headers["Status"] = "301 Moved Permanently"
redirect_to "http://www.new-url.com/"
end 

htaccessの使用

以下のコードを使用して.htaccessファイルを作成します。これにより、古いドメインのすべてのディレクトリとページが新しいドメインに正しくリダイレ​​クトされます。.htaccessファイルは、古いWebサイトのルートディレクトリ(つまり、インデックスファイルが配置されているのと同じディレクトリ)に配置する必要があります。

Options +FollowSymLinks
RewriteEngine on
RewriteRule (.*) http://www.newdomain.com/$1 [R=301,L] 

上記のコードのwww.newdomain.comを実際のドメイン名に置き換えてください。

リダイレクトに加えて、すべてのバックリンクサイトに連絡して、新しいWebサイトを指すようにバックリンクを変更することをお勧めします。

注:この.htaccessリダイレクト方法は、ApacheMod-Rewritemoduledが有効になっているLinuxサーバーでのみ機能します。

その他の方法については、これを参照してください

于 2012-07-26T10:06:45.060 に答える
1

サーバー側のリクエスト処理 (php、asp(.net)、java、ruby など) を実行していますか? その場合、古い場所とそれに相当する新しい場所を含む検索辞書を作成できます。それらがそのディクショナリにある場合は、すべての着信要求を確認し、適切な応答を返します。

ASP.NET での例 (これは Globabl.asax に含まれます):

Private redirectedResourceList As New Dictionary(Of String, String) From {
    {"/files/myfile.txt", "/newfiles/myfile.txt"},
    {"/files/myfile2.txt", "/newfiles/myfile2.txt"}
}

Sub Application_BeginRequest(ByVal sender As Object, ByVal e As EventArgs)
    If redirectedResourceList.ContainsKey(HttpContext.Current.Request.Path) Then
        Response.StatusCode = 301
        Response.AddHeader("Location", redirectedResourceList(HttpContext.Current.Request.Path))
        Response.End()
    End If
End Sub
于 2012-07-26T10:17:16.640 に答える