【问题标题】:page-redirecting script gives me a redirect loop页面重定向脚本给了我一个重定向循环
【发布时间】:2026-02-17 19:40:01
【问题描述】:

我的虚拟主机显示带有和不带有 www 的每个页面。子域,但带有子域的 URL 和没有子域的 URL 将我带到两个不同的位置(没有重定向)。我遇到的问题是,如果我在 example.com/website.html 上保存了 cookie,它们将不会保存在 www.example.com/website.html 上。我的解决方案是一个脚本,它检查网页的主机名是否有 www。前缀,如果是,它会重定向到同一页面,但没有前缀。

下面的代码是我的解决方案,它可以工作,但网页从 www.example.com/website.html 更改为 example.com/website.html 后会不断进入重定向循环

if (document.location.host = 'www.example.com') {
    window.location.href = "http://example.com";
}

我宁愿不使用 .htaccess 文件,因为我认为我的虚拟主机配置不正确,但我愿意尝试使用它。

【问题讨论】:

  • = 不是比较运算符,它是定义值...您需要两个 == 进行比较

标签: javascript .htaccess redirect


【解决方案1】:

= 不是比较运算符,它是定义值...您需要两个 == 进行比较

if (document.location.host == 'www.example.com') {
    window.location.href = "http://example.com";
}

同样,如果您想尝试该方法,您可以更新您的 .HTACCESS:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

【讨论】: