web-dev-qa-db-ja.com

SEOを目的として、openshift rhcloudドメインをカスタムドメインにリダイレクトする

OpenshiftアプリケーションのURL:example.rhcloud.com

カスタムドメイン:example.com

私はこれに遭遇しました link とリダイレクトルールを追加しました。しかし、今ではexample.rhcloud.comにアクセスできません。カスタムドメインはwww.example.comです。

重複コンテンツの問題を回避するために、このリダイレクトを試みました。

ここに私の.htaccessファイルがあります:

RewriteEngine on 

# Uncomment the following lines to force HTTPS
#RewriteCond %{HTTP:X-Forwarded-Proto} !https 
#RewriteRule .* https://%{HTTP_Host}%{REQUEST_URI} [R,L]


# WordPress Defaults
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

# Redirect Https traffic to Http
RewriteEngine on 
RewriteCond %{SERVER_PORT} ^443$ [OR]
RewriteCond %{HTTPS} on
RewriteRule  ^(.*)$ http://%{HTTP_Host}%{REQUEST_URI} [R=301,L] 

# Redirect non-www to www
RewriteEngine on 
RewriteCond %{HTTP_Host} !^www\. [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_Host}/$1 [R=301,L] 


# Redirect openshift rhcloud domain to custom domain
RewriteEngine on 
RewriteCond %{HTTP_Host} ^example.rhcloud.com$
RewriteRule (.*)$ http://www.example.com/$1 [R=301,L]

example.comww.example.comにリダイレクトしないのはなぜですか?どうすれば修正できますか?

また、httpsへのリダイレクトはhttpsであり、wwwからwwwへのリダイレクトはないため、ブログの読み込みが遅くなっています。ルールの数を減らすにはどうすればいいですか?

編集:

クロムの場合: enter image description here

Firefoxの場合:

ページは適切にリダイレクトされません。Firefoxは、サーバーがこのアドレスのリクエストを、決して完了しない方法でリダイレクトしていることを検出しました。この問題は、Cookieの無効化または拒否が原因で発生する場合があります。

4
Simran Kaur

RewriteCond %{HTTP_Host} !^www\. [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_Host}/$1 [R=301,L]

まったく異なるドメインから別のドメインにリダイレクトする場合、ターゲットで%{HTTP_Host}を使用できるとは思わないでしょう。たとえば、上記の結果、example.rhcloud.comwww.example.rhcloud.comにリダイレクトされますが、これは望ましい結果ではありません。次に、実際のドメインへの次のリダイレクトは一致しません。

必要なのは、次のようなものだけですbefore "WordPress"ディレクティブ。 .htaccess内のディレクティブの順序は重要であることに注意してください。

RewriteEngine On
RewriteCond %{HTTP_Host} !=www.example.com [NC]
RewriteRule (.*) http://www.example.com/$1 [R=302,L]

目的のドメインにまだいない場合、これは単に目的のドメインにリダイレクトします。明示的な正規のwwwリダイレクトやHTTPSの確認は必要ありません(新しいドメインにはHTTPSでアクセスできません)。

テストの前にブラウザのキャッシュをクリアします(301リダイレクトがキャッシュされます)。正常に動作していることが確認できたら、上記の302301に変更します。

したがって、要約すると、完全な.htaccessファイルは次のようになります。

RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_Host} !=www.example.com [NC]
RewriteRule (.*) http://www.example.com/$1 [R=301,L]

# WordPress Defaults
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
2
MrWhite