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

时间:2017-09-15 08:22:36

标签: wordpress .htaccess redirect pagespeed

我刚刚将我的wordpress网站移动到与以前相同的服务器上的HTTPS,一切正常。我设置了一个重定向301规则并使其正常工作,但是当检查" flow"我注意到从http://www.domainhttps://domain我有至少两个重定向而不是一个重定向。从http://domainhttps://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>

我使用了this link to test redirects count

我担心会失去谷歌的速度和/或排名。任何建议都表示赞赏。

4 个答案:

答案 0 :(得分:4)

您可以在wp-config.php中设置您的网站网址和wp-content(home)网址常量,如下所示:

define('WP_SITEURL', 'https://example.com'); 
define('WP_HOME', 'https://example.com');

(确保此规则没有重复,并在文件中的“停止编辑,快乐博客”注释之前添加它。此外,备份旧文件,然后再进行更改。)< / p>

然后我建议将你的.htaccess规则分开,因为你的当前设置可能无法在更新中存活,因为你已经删除了#END WordPress语句,如果启用了非常永久链接,WP核心需要该语句。

#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文件,理想情况下你的网络服务器将被设置为仅通过https为您的网站提供服务,这将有效地消除此变通方法的需要:

HTTP_Strict_Transport_Security

答案 1 :(得分:0)

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

所发生的是,您在HTTP上的所有定位链接都将在Google中消失,然后所有链接都会显示为HTTPS,这样就会以某种方式拥有一个新网站

答案 2 :(得分:0)

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

答案 3 :(得分:0)

这两个重定向是:

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

完成

www.domain to domain(均为https)由WP完成。

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

import turtle as t

t.speed(1)
working = False

def drawShape(x, y):
    global working
    working = True ##True while drawing.
    t.goto(x, y)
    working = False ##false, drawing is over.

def clicked(x, y):
    global working
    if working == False: ##if turtle not drawing
        drawShape(x, y)

t.onscreenclick(clicked)
t.mainloop()