如何使用 301 重定向而不是 302 将 HTTP 站点重定向到 HTTPS 站点
Posted
技术标签:
【中文标题】如何使用 301 重定向而不是 302 将 HTTP 站点重定向到 HTTPS 站点【英文标题】:How to redirect a HTTP site to HTTPS site using 301 redirect instead of 302 【发布时间】:2014-08-18 07:26:20 【问题描述】:我有一个使用 https 的 woocommerce 网站。如果使用 302 重定向重定向 https,我需要将其更改为 301 重定向。我在结帐页面上有“强制 SSL (HTTPS)(需要 SSL 证书)”。在 woo Commerce 设置中检查了选项,我的 htaccess 文件在下面
从 302 重定向到 301 重定向的最佳方式是什么?
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
# Forcing HTTPS
RewriteEngine On
RewriteCond %SERVER_PORT 80
RewriteRule ^(.*)$ https://www.aransweatersdirect.com/$1 [R,L]
【问题讨论】:
谷歌搜索“apache 301 重定向”时的第一个命中是this,它看起来描述了您需要的内容。 【参考方案1】:确保在默认 WP 规则之前保留 http->https
重定向规则,该规则将每个 URI 重写为 index.php
。
保持你的 .htaccess 像这样:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %SERVER_PORT 80 [OR]
RewriteCond %HTTPS off
RewriteRule ^ https://%HTTP_HOST%REQUEST_URI [R=301,NE,L]
RewriteRule ^index\.php$ - [L]
RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-d
RewriteRule . index.php [L]
</IfModule>
# END WordPress
然后确保将https
保留在您的主页和站点 URL 的 wordress 永久链接设置中。
【讨论】:
你能解释一下问题作者没有的那些行吗?它也对我有用,但我想了解它为什么有效以及是什么原因造成的。 我添加了有问题的以上是关于如何使用 301 重定向而不是 302 将 HTTP 站点重定向到 HTTPS 站点的主要内容,如果未能解决你的问题,请参考以下文章
在codeigniter中打开SSL认证网站时,301不会在http上重定向而不是重定向302
javascript 使用AWS Lambda重定向到CloudFront上的尾部斜杠。 (所有这一切都因为S3使用302重定向而不是301)
我应该在提交表单后使用 301、302 还是 303 重定向?