某些URL不会从http重定向到HTTPS

时间:2018-06-22 作者:query builder

我正在努力解决我的https重定向问题。我遵循stackexchange的所有解决方案。但仍然有问题,所以我在这里写作。问题是https重定向正在工作,但某些url没有重定向。例如http://example.com/contact 未在上重定向http://example.com/contact.这是我的密码。

define( \'WP_CACHE\', false );

define(\'FORCE_SSL_ADMIN\', true);
define(\'FORCE_SSL_LOGIN\', true);
define(\'WP_HOME\',\'https://www.example.com\');
define(\'WP_SITEURL\',\'https://www.example.com\');
感谢您的支持。

2 个回复
SO网友:itinerant

您的代码重定向WordPress管理页面以使用https(这将很好),然后设置站点和WordPress地址(这可能会自动重定向某些页面)。请注意,WordPress版本4.0中不推荐使用FORCE\\u SSL\\u登录(https://codex.wordpress.org/Administration_Over_SSL)

您可以使用强制整个站点使用SSL。htaccess(注意,为了涵盖WordPress安装到自己的目录,应该是站点主页将使用的同一服务器目录中的.htaccess)。

通常是:

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{HTTPS} !=on
    RewriteRule ^(.*)$ https://www.example.com/$1 [L,R=301,NC]
</IfModule>
但有些主机需要环境变量:

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{ENV:HTTPS} !=on
    RewriteRule ^(.*)$ https://www.example.com/$1 [L,R=301,NC]
</IfModule>
如果您使用的是Windows主机。htaccess无法工作,您需要使用web。配置

<rule name="HTTPS" patternSyntax="Wildcard" stopProcessing="true">
    <match url="*" />
    <conditions>
        <add input="{HTTPS}" pattern="off" />
    </conditions>
    <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Found" />
</rule>
相关注意事项我建议您将控制下的所有链接更改为使用https。在WordPress中https://en-gb.wordpress.org/plugins/velvet-blues-update-urls/ 非常方便。

您应该考虑改为在管理员中更改WordPress URL和站点URL,并查看这本关于将WordPress迁移到https的完整指南https://reviewofweb.com/how-to/migrate-wordpress-from-http-to-https/

SO网友:Godwin Alex Ogbonda

您可以使用Really simple SSL plugin. 或者Htaccess代码可以修复此问题。

RewriteCond %{HTTP_HOST} ^www.example.com [NC,OR]
RewriteCond %{HTTP_HOST} ^example.com [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [L,R=301,NC]

结束