我正在使用 apache2.4 并使用 drupal 7 配置网站。网站在端口 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]
谁能帮我永久重定向。
最佳答案
您的规则应该永久重定向。 检查您的代码是否位于 htaccess 之上。
另外我想你想检查请求是否不在 https 上并且与你的域匹配:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^www\.domain\.com
RewriteRule (.*) https://www.domain.com%{REQUEST_URI} [L,R=301]
我认为比 htaccess 更好的方法是取消虚拟主机文件 - 这样网络服务器就不需要读取 htaccess: https://wiki.apache.org/httpd/RedirectSSL
<VirtualHost *:80>
ServerName www.example.com
Redirect permanent / https://secure.example.com/
</VirtualHost>
关于apache - 网站监听80和443端口时如何在apache中做301重定向http到https?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41278246/