【问题标题】:Redirecting whole website to HTTPS将整个网站重定向到 HTTPS
【发布时间】:2015-05-10 05:01:26
【问题描述】:

我最近建立了一个网站并安装了我的 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

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

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

【问题讨论】:

  • 404 重定向之前还是之后?

标签: php .htaccess redirect ssl


【解决方案1】:

要将 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>

来自文档。

您几乎总是希望将 [R] 与 [L] 结合使用(即 是,使用 [R,L]),因为 [R] 标志本身就在前面 http://thishost[:thisport] 到 URI,然后将其传递给 规则集中的下一条规则,通常会导致 'Invalid URI in 请求的警告。

【讨论】:

    【解决方案2】:

    我发现这篇关于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/$1 [L,R=301,NC]
    

    yoursite.com 的每个实例替换为您的 WordPress 网站的 URL。

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

    【讨论】:

      【解决方案3】:

      谢谢你们的帮助!我会投票赞成答案,但我得到的代表少于 15 个所以我不能,无论如何,我遵循了 Tim Biegeleisen 建议的指南,虽然我无法通过修改 .htaccess 文件来让 301 重定向工作,但我得到了该网站使用 HTTPS 运行,所以现在它显示挂锁和 ssl 证书,当我按照建议修改 .htaccess 文件时,我无法访问该网站,谷歌说“它有太多重定向循环”所以我就离开了.htaccess 上面有默认代码,我所做的是转到 wordpress 面板并修改 WordPress 地址 (URL)和 站点地址 (URL)正在使用https,之后我将我的网站添加到谷歌网站管理员工具中,我认为关闭了这个圈子,现在效果很好,到目前为止一切都很好!谢谢你们的帮助!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-05-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-07-03
        • 1970-01-01
        相关资源
        最近更新 更多