从domain.com重定向(301)到www.domain.com,同时在HTACCESS中强制HTTPS

时间:2012-01-07 14:53:30

标签: .htaccess https http-status-code-301

好的,这就是我原来的,它将任何domain.net或www.domain.net重定向到www.domain.com(使用SSL)。

RewriteEngine On
RewriteCond %{SERVER_PORT} !443
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]
RewriteCond %{HTTP_HOST} ^domain\.net$ [OR]
RewriteCond %{HTTP_HOST} ^www\.domain\.net$
RewriteRule ^/?$ "http\:\/\/domain\.com" [R=301,L]

现在,我想强制所有这些条件报告301(用于搜索引擎目的): domain.net www.domain.net domain.com

并强制所有条件: www.domain.com使用SSL(即使有人打字http://www.domain.com也应该到达https://www.domain.com)。

这有意义吗?这是我到目前为止所做的,我认为这将有效,但我不知道如何添加301部分......

RewriteEngine On
RewriteCond %{SERVER_PORT} !443
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]
RewriteCond %{HTTP_HOST} ^domain\.net$ [OR]
RewriteCond %{HTTP_HOST} ^domain\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.domain\.net$
RewriteRule ^/?$ "http\:\/\/domain\.com" [R=301,L]

1 个答案:

答案 0 :(得分:2)

您说您只想使用www.domain.com,但您的代码表示您只想使用domain.com。无论如何,这应该可以解决问题:

RewriteEngine On
RewriteBase /

# redirect any domain other than www.domain.com to www.domain.com
RewriteCond %{HTTP_HOST} !^www\.domain\.com$ [NC]
RewriteRule ^(.*)$ https://www.domain.com/$1 [L,R=301]

# force https on www.domain.com
RewriteCond %{HTTPS} ^off
RewriteRule ^(.*)$ https://www.domain.com/$1 [L,R=301]