例えばロリポップで運営していたサイトをエックスサーバーに引っ越しさせて、ドメインも変更した場合、まったく同じ内容のサイトが2サイト存在してしまいます。それをリダイレクトして古いサイトのアドレスをクリックすると、新しいサイトが表示される方法を書きたいと思います。
301リダイレクトとは
301リダイレクトは、Webサイトの転送をするための命令になります。サイトのURLが、一時的な変更ではなく恒久的に変更される場合に推奨されています。
301リダイレクトを用いることで、旧URLでWebサイトに来た人を、自動的に新URLの、移転後のWebサイトへ誘導することができます。
301リダイレクトのSEO上の効果
301リダイレクトによって、アドレスが転送される場合、検索エンジンには転送前のURLが持っていた被リンク等の評価を、転送先のURLに引き継がせることができるようです。よって例えば転送前のURLが外部リンクを数多く集めている場合には、301リダイレクトで適切に転送をかけることで、これまでの得ていた被リンク面での評価を新しいURLにそのまま引き継ぐことができます。
※とはいえ実際にはまったく同じようになるわけではないようです。アクセス減が確認されることもあります。
最近ではSSL化が推奨されていますので、「http:」→「https:」にしたい場合も多いと思います。
301リダイレクトの設定方法
「.htaccess」に下記を書きます。
RewriteEngine on RewriteCond %{HTTPS} off RewriteRule ^(.*)$ http://(新URL)/$1 [R=301,L]
http://(新URL)に自分のアドレスを書きます。もしSSL化しているならhttps://●●と書きます。
RewriteEngine on RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://(新URL)/$1 [R=301,L]
もしくは下記でも大丈夫です。
RewriteEngine on RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
WordPressを使っていると、データはフォルダに入れているけれど、実際のアドレスはフォルダを表示させない場合があると思います。
https://shiritai.net/フォルダ/
にWordPressは入れているけれど、
実際は
https://shiritai.net
と表示させる場合、「.htaccess」に記載していると思います。
# 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
こんな感じですでに「.heaccess」に色々書かれている場合、どこに書いたらいいのか?となると思います。
リダイレクトを設定する際、絶対的なルールが決まっているわけではないようですが、とりあえず迷ったら一番上に書くのがよいかなと思います。
SSL化で転送設定をしたいのにエラーが出る場合の対処として下記の記事もよかったら参考にしてください。
コメントをどうぞ