web-dev-qa-db-ja.com

古いドメインから新しいドメインに移行する方法は?

あるドメイン名から別のドメイン名へのサイトの移動が終了しました。ソーシャルメディアと検索エンジンの古いリンクはすべて壊れています。 redditまたはFacebookからリンクをクリックしても、olddomain.comを指します。ブラウザにolddomain.comと入力しても、newdomain.comはポップアップします。とにかくこの問題を解決できますか?私がしたことは、古いサイトのデータをエクスポートし、新しいサイトに切り替えて、新しいサイトをインポートすることだけでした。今何が欠けていますか?

このトピックを検索すると、Googleに奇妙な結果が出ています。必要であればgodaddyとwordpressを使用し、500を超える投稿があり、メインolddomain.comからnewdomain.comへの301リダイレクトを設定して、それが機能するようにします。

コミュニティからの要求に応じて、私の.htaccessファイルは次のとおりです。

#I have 500 of these for each link: 
redirect 301 people-of-earth-unrenewed-at-tbs/ http://channelactivist.com/people-of-earth-unrenewed-at-tbs/

#Then I have this at the end:
# Redirect the site 
RewriteEngine On 
# Take care of www.johnjfalco.com 
RewriteCond %{HTTP_Host} ^www.johnjfalco.com$ [NC] 
RewriteRule ^(.*)$ http://channelactivist.com/$1 [L,R=301]

# BEGIN WordPress 
<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase / 
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
</IfModule> 
# END WordPress
2
jjf3

既存のすべてのリンクが新しいドメインに自動的に変更されることはありません。時間のかかるウェブサイトや自動化されたウェブサイトを除き、彼らは決してそうしません。

ただし、olddomain.comを301リダイレクトに保持している限り、それらの古いリンクをクリックすると、人々は新しいサイトに問題なくアクセスできます。

ただし、FacebookやTwitterが画像/プレビューを失う可能性は低くありません。 Facebookでは、投稿を編集し、Webサイトのデフォルトの画像をFacebookに直接アップロードした画像に置き換えることができます。それを行うにはもっと時間がかかりますが、私が理解していることから、これらの写真は残っています。

Pasakgroupが述べたように、Google ConsoleでGoogleに伝えることは、GoogleでSEOを行うのに役立ちます。


リンクから更新:

wgetでテストしました。これにより、応答ヘッダーを確認できます。

$ wget -S http://johnjfalco.com/people-of-earth-unrenewed-at-tbs/
--2018-06-28 18:39:15--  http://johnjfalco.com/people-of-earth-unrenewed-at-tbs/
Resolving johnjfalco.com (johnjfalco.com)... 184.168.131.241
Connecting to johnjfalco.com (johnjfalco.com)|184.168.131.241|:80... connected.
HTTP request sent, awaiting response... 
  HTTP/1.1 404 Not Found
  Server: nginx/1.12.2
  Date: Fri, 29 Jun 2018 01:39:15 GMT
  Content-Type: text/html; charset=utf-8
  Transfer-Encoding: chunked
  Connection: close
2018-06-28 18:39:15 ERROR 404: Not Found.

ご覧のように、301ではなく404を取得します。したがって、301をどのように実装したと思うかはよくわかりませんが、すべてのページで正しく機能するとは限りません。

また、ホームページをテストしましたが、予想どおり301が表示されています。

$ wget -S http://johnjfalco.com/
--2018-06-28 18:41:17--  http://johnjfalco.com/
Resolving johnjfalco.com (johnjfalco.com)... 184.168.131.241
Connecting to johnjfalco.com (johnjfalco.com)|184.168.131.241|:80... connected.
HTTP request sent, awaiting response... 
  HTTP/1.1 301 Moved Permanently
  Server: nginx/1.12.2
  Date: Fri, 29 Jun 2018 01:41:17 GMT
  Content-Type: text/html; charset=utf-8
  Transfer-Encoding: chunked
  Connection: close
  Location: http://channelactivist.com
Location: http://channelactivist.com [following]
--2018-06-28 18:41:17--  http://channelactivist.com/

ここでわかるように、301のHTTP/1.1コードと、新しいドメイン名を持つLocation:を取得します。したがって、ホームページは機能していますが、他のページは機能していません。

それでは、次の質問は、リダイレクトをどのように実装したのですか? GoDaddyに実行を依頼した場合、正しく動作しません。ウェブサイトをアカウントに保持し、他の回答に示されているコードを含む.htaccessファイルを追加する必要があります。

RewriteEngine on
RewriteRule ^/(.*)$ http://channelactivist.com/$1 [R=301,L]

これにより、既存のリクエスト(^/(.*)$)から任意のパスが取得され、新しいURL($1)の末尾に固定されます。そうすれば、次のようなURL

http://old.example.com/some/path/and/filename.html

になることができる:

http://new.example.com/some/path/and/filename.html

ただし、既存の.htaccessコードを表示することで、リダイレクトの問題をさらに解決できる場合があります。 (質問を入力してください)


.htaccessファイルについて更新します。

ここには条件があり、それは理にかなっています。あなただけがwww...をテストします。

RewriteCond %{HTTP_Host} ^www.johnjfalco.com$ [NC]

私はwww部分をテストしません。おそらく、^$は必要ありません。おそらく、所有するドメインと一致しない名前でヒットすることはないからです。 (古いドメインと一致することはほとんどありません。)

その条件をこれに変更します。

RewriteCond %{HTTP_Host} johnjfalco.com [NC]

これは、GoDaddyが中央にある場合(GoDaddy 404ページを取得する理由を説明します)、.htaccessファイルを変更するだけでは十分ではありません。


最新のものをテストしたところ、301ではなく302が表示されました。

それだけでなく、リダイレクトにはドメイン名が含まれていません。それは正しくありません。 Location: ...フィールドにプロトコルとドメイン名を含める必要があります。

念のため、Firebugを搭載したブラウザーでテストし、[ネットワーク]タブをクリックしました。これにより、Locationヘッダーフィールドが表示されます。

enter image description here

だから...あなたが示した.htaccessは、現時点でリダイレクトを生成しているものではありません。 GoDaddyが制御されている可能性があります。完全に切り取る必要があります。古いドメインは9月まで有効であるため、問題ではありません。

2
Alexis Wilke

まず、プロパティ設定からGoogle Search ConsoleChange of Addressのドメイン名を変更する必要があります。
その後、古いドメインを新しいドメインにリダイレクトする必要があります

Options -Indexes

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^(.*)$ http://newdomain.com/$1 [R=301,L]
</IfModule>
1
Pasakgroup