强制" https"和" www"重定向
我正在尝试查看是否有办法将网址重定向到https://www.example.com 例如,如果有人输入了网址http://example.com/subfolder,那么它应该重定向到https://www.example.com/subfolder。
这是一个Wordpress网站。如果我去设置=>一般=>我看到WordPress地址(URL)和站点地址(URL)显示为灰色,因此我无法输入任何URL。两者都显示为http://example.com
我去了phpMyAdmin =>选项表将WordPress地址(URL)和站点地址(URL)更改为https://www.example.com但我仍然在wordpress常规设置面板上看到http://example.com。
我查看了wp-config文件,发现以下代码似乎阻止我输入自定义网址。
define('WP_HOME', 'http://' . $_SERVER['HTTP_HOST']);
define('WP_SITEURL', 'http://' . $_SERVER['HTTP_HOST']);
define('WP_CONTENT_URL', '/wp-content');
define('DOMAIN_CURRENT_SITE', $_SERVER['HTTP_HOST']);
这里的代码似乎强制执行WordPress地址(URL)和站点地址(URL)。
我的托管服务提供商建议使用htaccess通过下面的代码强制执行ssl:
#Force SSL on entire site
RewriteEngine On
RewriteBase /
RewriteCond %{ENV:HTTPS} !on [NC]
RewriteRule ^(.*)$ https://(YOURDOMAIN)/$1 [R,L]
但是本指南并没有真正告诉我们如何强制执行www。
我在此处找到了另一个指南.htaccess - how to force "www." in a generic way?,其中解释了如何将domain.com强制执行到www.domain.com。据说这个也检查https并实现重写规则。
RewriteEngine On
RewriteCond %{HTTP_HOST} !^$
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
现在,其他人正在推荐以下代码,声称上述第一个代码只有在您希望所有子域转发到www.yourdomain.com时才有效。我很困惑我需要选择哪一个?
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example.com [NC]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
我试图看看哪个选项是实施强制重定向的最佳解决方案?或者我应该从wp-config文件中删除这四个define()代码,以便我可以使用wordpress常规设置重定向?