web-dev-qa-db-ja.com

ルートドメインから301リダイレクトを非表示にするにはどうすればよいですか?

オンラインツールを使用して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結果を取得するには、何を変更する必要がありますか?

1
Virage
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)。

4
LazyOne