【问题标题】:Htaccess does not redirect non-root pagesHtaccess 不重定向非根页面
【发布时间】:2013-05-16 01:25:53
【问题描述】:

案例:

www.domain.com 重定向到 domain.com

www.domain.com/somecategory 不会重定向到 domain.com/somecategory

页面上的链接是相对的,这会导致 google 出现问题,因为所有 www 链接现在都是重复的内容。有没有办法解决这个问题并在所有 WWW 页面上强制进行非 www 重定向,无论它是否是 root 用户?

htaccess:

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

我也试过了

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

【问题讨论】:

  • 您搜索过该网站吗?如果是:您遇到的具体问题是什么/您遇到了什么问题?
  • 是的,我已经搜索过该网站。具体来说,如果我直接链接到它们,我的子目录不会重定向到非 www。它们仅在通过 root 访问时才会重定向。
  • 我不明白这根本不是一个有效的问题。您基本上有数百个线程详细说明 www 到非 www 或非 www 到 www,但没有关于这个特殊问题。请详细说明您的飞越-1:/

标签: .htaccess


【解决方案1】:

我已将您的代码更改为:

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

而且它似乎正在工作。

重写规则中没有斜线,我被重定向到domain.compage而不是domain.com/page

【讨论】:

  • 是的,这是一个错字。您正在使用的代码实际上是在站点 atm 上使用的。我倾向于这根本不是 htaccess 问题,而是 PHP 后端的问题。鉴于问题很可能不在这里,我将其设置为正确答案。谢谢你
  • 通过部门联系表向您发送了帮助请求。
  • 已回复。我能想到的唯一原因是较长的 URL(带有路径)首先触发了另一个规则。尝试将此规则放在列表的首位。如果没有帮助,请尝试删除不必要的规则。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-21
  • 1970-01-01
  • 2012-06-19
  • 2023-03-04
  • 1970-01-01
  • 2022-01-14
  • 2021-12-24
相关资源
最近更新 更多