我刚刚将我的wordpress网站移动到与以前相同的服务器上的HTTPS,一切正常。我设置了一个重定向301规则并使其正常工作,但是当检查" flow"我注意到从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>
我使用了this link to test redirects count
我担心会失去谷歌的速度和/或排名。任何建议都表示赞赏。
答案 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为您的网站提供服务,这将有效地消除此变通方法的需要:
答案 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()