301 从非 www 重定向到 www 问题

301 从非 www 重定向到 www 问题

从昨天开始,我一直在尝试设置从非 www 到 www 域名的 301 重定向,但这只会给我的网站带来问题。我首先从网站的控制面板尝试,然后通过以下方式修改 .htaccess 文件:

Options +FollowSymlinks
RewriteEngine on
rewritecond %{http_host} ^example.com [nc]
rewriterule ^(.*)$ http://www.example.com/$1 [r=301,nc]

我的网站基于 wordpress,出现的第一个问题是我无法再访问我的后端……当我尝试登录时,页面会重新加载,然后出现无限循环,整个网站都无法访问。删除这几行后,一切都正常了。

答案1

我们使用类似这样的方法,它使用精确字符串匹配,而不是正则表达式。您可以将域更改为您喜欢的域。我们不包含 www 前缀除非我们的客户无法正确配置他们的 DNS。

RewriteEngine On
RewriteCond %{HTTP_HOST} !=example.org
RewriteRule (.*) http://example.org/$1 [R=301,L]

听起来您可能需要在添加此重定向之前更改 Wordpress 配置的 URL,因为 Wordpress 对于在未事先通知的情况下更改其 URL 有点敏感(并且在更改时两个 URL 都正常工作)。

答案2

看起来你在那里有一些多余的字符,可能应该是这样的:

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

差异很小,但应该可以解决问题(无论如何,这就是我的设置方式)。

相关内容