当网站监听端口80和443时,如何在apache中将http重定向到https 301?

时间:2016-12-22 07:55:01

标签: apache .htaccess redirect drupal-7 seo

我正在使用apache2.4&使用drupal 7配置网站。网站在80和80端口ssl在端口443上启用。 我已经通过网站管理员登录重定向主页到https但是在检查301重定向时它说URL是 应使用302临时重定向而不是此301永久重定向重定向,因为这是 考虑SEO友好的重定向方法。到目前为止我唯一使用的重定向是

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

但它没有从http重定向到https。我甚至试过遵循规则

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

任何人都可以帮助我永久重定向。

1 个答案:

答案 0 :(得分:0)

您的规则应该重定向。 检查您的代码是否位于htaccess之上。

此外,我想您要检查请求是否不在https上并与您的域匹配:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^www\.domain\.com
RewriteRule (.*) https://www.domain.com%{REQUEST_URI} [L,R=301]

比htaccess更好的方法是取消我想的虚拟主机文件 - 所以网络服务器不需要reed htaccess: https://wiki.apache.org/httpd/RedirectSSL

<VirtualHost *:80>
   ServerName www.example.com
   Redirect permanent / https://secure.example.com/
</VirtualHost>