【问题标题】:.htaccess redirect http > https with 301 redirects.htaccess 重定向 http > https 与 301 重定向
【发布时间】:2017-10-25 10:17:14
【问题描述】:

我最近安装了 SSL 证书,现在我的整个网站都在使用它,没有错误。我已经设置了从 http 到 https 的重定向,但意识到它使用的是 302 重定向。我目前使用以下代码,它使用 301 重定向。

这是正确的吗?我可以删除其中的任何部分,还是应该更改其中的任何部分?

RewriteEngine On
RewriteCond %{HTTP_HOST} ^website.com [NC]
RewriteCond %{REQUEST_URI} !^/[0-9]+\..+\.cpaneldcv$
RewriteCond %{REQUEST_URI} !^/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteRule ^(.*)$ http://www.website.com/$1 [L,R=301]


RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

感谢您的检查。

【问题讨论】:

    标签: .htaccess ssl redirect https


    【解决方案1】:

    你的代码的第一部分很奇怪,为什么你在 HTTP 上全部重定向,然后在第二部分的 https 上重定向:)?

    这是我的示例,它与您的类似,但我不需要每次都更改域名,例如,如果您在不同的服务器上使用相同的模式 + 这会将所有流量从 http 重定向到 https

    RewriteEngine on
    RewriteCond %{HTTPS} off
    RewriteCond %{REQUEST_URI} !^/\d+.BIN_AUTOSSL_CHECK_PL__.\w+.tmp$ [NC]
    RewriteCond %{REQUEST_URI} !^/.well-known/acme-challenge/ [NC]
    RewriteCond %{REQUEST_URI} !^/[0-9]+..+.cpaneldcv$
    RewriteCond %{REQUEST_URI} !^/.well-known/pki-validation/[A-F0-9]{32}.txt(?:\ Comodo\ DCV)?$
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
    

    RewriteCond %{HTTPS} on 部分可能不适用于所有 Web 服务器。例如,我的虚拟主机需要 RewriteCond %{HTTP:X-Forwarded-SSL}

    【讨论】:

    • 这显示为 302 重定向。我需要它是 301 (SEO)