オンラインツールを使用してWebページのSEOを分析し、ルートドメイン名www.example.com
のHTTPステータスがwww.example.com/index.html
への301リダイレクトになっていることを確認しました。
代わりにルートドメインに200の結果を返すようにしたいのですが、かなり前に301リダイレクトを設定しましたが、これを解決するためにコードを変更する方法がわかりません。私のウェブサイトのメインルートドメインがSERPから消えていることに気づきました(ほとんどの場合、サブドメインページに置き換えられます)。この301リダイレクトがルートドメインのランク付け機能に影響しているのではないかと心配しています。
私の.htaccess
ファイルは次のコードで始まります:
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_Host} ^example.com [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]
個々のリダイレクトが続きます。
私のindex.html
ページにはコードが含まれています:
<link rel="canonical" href="http://www.example.com">
また、www以外のページのインスタンスがwwwバージョンとして表示されるように、Googleウェブマスターツールを設定しています。
このコードは冗長ですか?ルートのHTTP 200結果を取得するには、何を変更する必要がありますか?
RewriteRule ^$ /index.html [L]
これにより、Apacheはexample.com
へのヒットをリダイレクトせずにexample.com/index.html
へのヒットとして扱うようになります(URLは変わりません)。
既に持っているコード(最後の2行)は、wwwを前に付けていないURLをwwwが先頭にあるURLにリダイレクトするようApacheに指示します(例:http://example.com/somepage.html
=> http://www.example.com/somepage.html
)。