我无法将我的网站从
https://example.com到https://www.example.com
我也在 Stack Overflow 和 serverfault 上找到了很多建议(意味着将规则重写为 htaccess),但它们都不适用于我的情况。
证书是针对带有 www 的域名发送给我的,因此我必须将网站移至此类地址(因为之前的网站没有 www)。
http://example.com到https://www.example.com
工作正常。
该网站是基于 WordPress 构建的,因此我也尝试安装一些插件来设置这种重定向,但没有成功。
有人能帮助我吗?有人知道我该怎么办吗?
我的实际 .htaccess 文件
# 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]
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example.com$ [NC]
RewriteRule (.*) https://www.example.com/$1 [R=301,L]
</IfModule>
# END WordPress
请注意,我是初学者,所以也许解决方案非常简单和明显,但是......我对这个主题足够熟悉......请帮忙!
答案1
下面的重写规则可以解决这个问题:
#Rewrite non https to https
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{SERVER_NAME}/$1 [R,L]
#Rewrite non-www to www
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
另外,不要忘记将您的 wordpress URL 更改为 www 和 https,否则会形成循环。
要更改 WordPress URL,请编辑 wp-config.php 并在 WP_DEBUG 行下添加以下行:
define('WP_HOME','https://www.example.com');
define('WP_SITEURL','http://www.example.com');
据我所知,如果你将 wordpress URL 更改为 www,它会自动将非 www wordpress url 重定向到 WWW,因此如果你遇到任何重定向循环,只需删除后面的行即可
#将非 www 改写为 www
从 htaccess 开始,您就可以开始了。 希望
这能有所帮助。Shahriar