将整个网站重定向到 HTTPS

Redirecting whole website to HTTPS

我最近建立了一个网站并安装了我的 SSL 证书等等,但是我的网站仍然显示为未认证和不安全,原因是因为该网站仍在使用 HTTP 地址,而不是 HTTPS,我找到了我的 .htaccess 文件,这是里面的内容:

    # 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

我发现为了重定向到 HTTPS,我需要使用这个:

   # BEGIN WordPress
   <IfModule mod_rewrite.c>
   RewriteEngine On
   RewriteCond %{HTTPS} off
   RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

    </IfModule>

    # END WordPress

这行得通,唯一的问题是它只适用于主页,"homepage" 如果您尝试打开该网站的任何其他页面,它会显示 404 消息未找到,所以我的问题是:

我需要做什么才能重定向我的整个域,以便使用 HTTPS 以便我可以在 URL 栏上显示 "PADLOCK AND SSL CERTIFICATE"?

我找到了这篇关于 How to Move a WordPress Website from HTTP to HTTPS/SSL 的精彩文章。在文章的结尾,它提供了通过将以下代码添加到 WordPress 的 .htaccess 文件顶部来设置从 HTTP 到 HTTPS 的永久 301 重定向的说明:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^yoursite.com [NC,OR]
RewriteCond %{HTTP_HOST} ^www.yoursite.com [NC]
RewriteRule ^(.*)$ https://www.yoursite.com/ [L,R=301,NC]

用您的 WordPress 站点的 URL 替换 yoursite.com 的每个实例。

我建议您浏览我上面提供的 整个 网页,并确保您完全按照列出的步骤进行操作。

要将 https 添加到具有 valid 证书的 wordpress 站点,您的规则应如下所示。您还需要在规则末尾使用 [R=301,L]。如果您不指定哪个 R 状态代码,它默认为 302,这是临时的。你想要 301 永久。您还需要将 L 与重定向一起使用,以防止出现 404 之类的情况。阅读底部注释。

   <IfModule mod_rewrite.c>
   RewriteEngine On
   RewriteBase /
   RewriteCond %{HTTPS} off
   RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
   # BEGIN WordPress
   RewriteRule ^index\.php$ - [L]
   RewriteCond %{REQUEST_FILENAME} !-f
   RewriteCond %{REQUEST_FILENAME} !-d
   RewriteRule . /index.php [L]
    </IfModule>

来自文档。

You will almost always want to use [R] in conjunction with [L] (that is, use [R,L]) because on its own, the [R] flag prepends http://thishost[:thisport] to the URI, but then passes this on to the next rule in the ruleset, which can often result in 'Invalid URI in request' warnings.

谢谢大家的帮助!我会投票赞成答案,但我得到的代表少于 15 个,所以我不能,无论如何,我遵循了 Tim Biegeleisen 建议的指南,尽管我无法通过修改 .htaccess 文件使 301 重定向工作,但我得到了该网站使用 HTTPS 运行,所以现在它显示挂锁和 ssl 证书,当我按照建议修改 .htaccess 文件时我无法访问该网站,google 说 "it had too many redirect loops"所以我只是在 .htaccess 上保留了默认代码,我所做的就是转到 wordpress 面板并修改 WordPress 地址 (URL) 和 站点地址 (URL) 正在使用 https,之后我将我的网站添加到 google 网站管理员工具,我认为这结束了这个圈子,现在效果很好,所以太好了!感谢你们的帮助!