Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将整个网站重定向到HTTPS_Php_.htaccess_Redirect_Ssl - Fatal编程技术网

Php 将整个网站重定向到HTTPS

Php 将整个网站重定向到HTTPS,php,.htaccess,redirect,ssl,Php,.htaccess,Redirect,Ssl,我最近建立了一个网站并安装了我的SSL证书等等,但我的网站仍然显示为未经认证和不安全的,原因是因为该网站仍然使用HTTP地址,而不是HTTPS,我找到了我的.htaccess文件,这就是它的内部内容: # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQU

我最近建立了一个网站并安装了我的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
#开始WordPress
重新启动发动机
重写基/
重写规则^index\.php$-[L]
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则/index.php[L]
#结束WordPress
我发现为了重定向到HTTPS,我需要使用:

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

    </IfModule>

    # END WordPress
#开始WordPress
重新启动发动机
重写条件%{HTTPS}关闭
重写规则(*)https://%{HTTP\u HOST}%{REQUEST\u URI}
#结束WordPress
这是有效的,唯一的问题是,这只适用于主页,“主页”,如果你试图打开网站的任何其他页面,它会显示404消息未找到,所以我的问题是:


我需要做什么才能重定向我的整个域,使用HTTPS,这样我就可以在URL栏上显示“挂锁和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]
用WordPress站点的URL替换
yoursite.com
的每个实例


我建议您浏览我上面给出的整个网页,确保完全按照所列步骤操作。

要将https添加到具有
有效
证书的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>

重新启动发动机
重写基/
重写条件%{HTTPS}关闭
重写规则^https://%{HTTP_HOST}%{REQUEST_URI}[R=301,L]
#开始WordPress
重写规则^index\.php$-[L]
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则/index.php[L]
从文档中删除

您几乎总是希望将[R]与[L]结合使用(即 是,请使用[R,L]),因为[R]标志本身是前置的 ,然后将其传递给 规则集中的下一个规则,这通常会导致“中的URI无效” 请求“警告”


谢谢你们的帮助,伙计们!我会对答案投赞成票,但我得到的答复不到15次,所以我不能,无论如何,我遵循Tim Biegeleisen建议的指南,虽然我无法通过修改.htaccess文件使301重定向正常工作,但我让网站使用HTTPS运行,所以现在它显示挂锁和ssl证书,当我按照建议修改.htaccess文件时,谷歌说“它有太多的重定向循环”,所以我只留下了带有默认代码的.htaccess,我所做的就是转到wordpress面板,修改wordpress地址(URL)和站点地址(URL)都在使用https,之后我把我的网站添加到了谷歌站长工具中,我认为这已经结束了,现在效果很好,到目前为止还不错!谢谢你们的帮助,伙计们

404重定向之前还是之后?