Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.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
使用重定向301将Wordpress迁移到HTTPS_Wordpress_.htaccess_Redirect_Pagespeed - Fatal编程技术网

使用重定向301将Wordpress迁移到HTTPS

使用重定向301将Wordpress迁移到HTTPS,wordpress,.htaccess,redirect,pagespeed,Wordpress,.htaccess,Redirect,Pagespeed,我刚刚将我的wordpress站点移动到了与以前相同的服务器上的HTTPS,一切正常。我设置了一个重定向301规则,并使其正常工作,但是在检查流量时,我注意到http://www.domain 到https://domain 我至少有两个重定向,而不是只有一个。这种情况不会从一开始就发生http://domain 或https://www.domain 同样https://domain 页面 我使用的规则是: <IfModule mod_rewrite.c> RewriteEngin

我刚刚将我的wordpress站点移动到了与以前相同的服务器上的HTTPS,一切正常。我设置了一个重定向301规则,并使其正常工作,但是在检查流量时,我注意到http://www.domain 到https://domain 我至少有两个重定向,而不是只有一个。这种情况不会从一开始就发生http://domain 或https://www.domain 同样https://domain 页面

我使用的规则是:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

# BEGIN WordPress
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
我曾经


我担心的是失去谷歌的速度和/或排名。非常感谢您的建议。

您可以设置您的网站url和wp内容主页url常量,如下所示:

确保没有重复此规则,并将其添加到文件中的“停止编辑,快乐博客”注释之前。另外,在更改旧文件之前,请先备份它

然后,我建议您分离.htaccess规则,因为您当前的设置可能无法通过更新,因为您已删除END WordPress语句,如果启用了pretty permalinks,则WP core需要该语句

#REDIRECT TO HTTPS
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteCond %{ENV:HTTPS} !=on
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
</IfModule>
下面是标准的WordPress部分:

# 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,然后再提供WP文件,理想情况下,您的Web服务器将设置为仅通过https为您的网站提供服务,这将有效地消除此解决方案的需要:


您可以像这样设置站点url和wp content home url常量:

确保没有重复此规则,并将其添加到文件中的“停止编辑,快乐博客”注释之前。另外,在更改旧文件之前,请先备份它

然后,我建议您分离.htaccess规则,因为您当前的设置可能无法通过更新,因为您已删除END WordPress语句,如果启用了pretty permalinks,则WP core需要该语句

#REDIRECT TO HTTPS
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteCond %{ENV:HTTPS} !=on
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
</IfModule>
下面是标准的WordPress部分:

# 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,然后再提供WP文件,理想情况下,您的Web服务器将设置为仅通过https为您的网站提供服务,这将有效地消除此解决方案的需要:


有一个插件很容易做到这一点,称为真正简单的SSL,根据我的经验,当我移动到HTTPS时,我失去了一点谷歌排名,但随着时间的推移,你会再次获得排名


发生的情况是,所有与HTTP的定位链接都将在google中消失,然后所有的HTTPS链接都将出现,因此就像在某种程度上有一个新网站一样

有一个插件可以很容易地做到这一点,称为真正简单的SSL,根据我的经验,当我转到HTTPS时,我已经失去了一点谷歌排名,但随着时间的推移,你会再次获得排名


发生的情况是,所有与HTTP的定位链接都将在google中消失,然后所有的HTTPS链接都将出现,因此在某种程度上就像有一个新网站一样

我建议使用SRDB工具。我不知道你是否知道。有了这个伟大的工具,您可以在数据库中全局更改URL。这里是GitHub上的链接。每次我用SSL证书迁移WP站点时,我都会使用这个工具和.htaccess中类似的代码,就像你写的那样。我总是有HTTP 200响应。 只需在ftp上复制srdb并通过浏览器运行索引即可。您必须设置DB连接,并将所有出现的旧域替换为http,新域替换为https。
我希望这有帮助。

我建议使用SRDB工具。我不知道你是否知道。有了这个伟大的工具,您可以在数据库中全局更改URL。这里是GitHub上的链接。每次我用SSL证书迁移WP站点时,我都会使用这个工具和.htaccess中类似的代码,就像你写的那样。我总是有HTTP 200响应。 只需在ftp上复制srdb并通过浏览器运行索引即可。您必须设置DB连接,并将所有出现的旧域替换为http,新域替换为https。 我希望这有帮助。

这两个重定向是:

非https www.domain到https www.domain由htaccess完成

www.domain-to-domain两个https均由WP完成

您应该重定向到非www域。在重定向规则之前添加如下内容:

RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] 
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
这两个重定向是:

非https www.domain到https www.domain由htaccess完成

www.domain-to-domain两个https均由WP完成

您应该重定向到非www域。在重定向规则之前添加如下内容:

RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] 
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]

嗨,wp配置已经这样设置了,但是使用了https,因为我只需要这个版本就可以工作。我试图根据您的建议更改我的htaccess,但我仍然存在相同的问题,即计算两个重定向,而不是仅从http://www.domainI我更新了我的答案,因为它实际上说的是http,而它本来是https。。对不起。我希望现在它更有意义。嗨,wp配置已经这样设置了,但是使用了https
,因为我需要这个版本只是为了工作。我试图根据您的建议更改我的htaccess,但我仍然存在相同的问题,即计算两个重定向,而不是仅从http://www.domainI我更新了我的答案,因为它实际上说的是http,而它本来是https。。对不起。我希望现在它更有意义。