首页 / 帖子
带www的域名定向到不带www的域名,最合理的解决办法是什么?

域名重定向,跟SEO等有关,比如www.a.com,重定向到a.com,这种最合理的解决办法是什么?Drupal中那种更合适?

也许是老生常谈的问题,但是也没有一个很漂亮完美的答案,也不清楚平时大家都怎么做的,所以过来讨论提问一下。

2个答案
闻涛
发布于:2014-08-08 14:13

去drupal根目录下找到.htaccess文件

  # To redirect all users to access the site WITHOUT the 'www.' prefix,
  # (http://www.example.com/... will be redirected to http://example.com/...)
  # uncomment the following:
  # RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
  # RewriteRule ^ http%{ENV:protossl}://%1%{REQUEST_URI} [L,R=301]

找到上面这段代码,大概在96行,按照注释提示,把最下面两行的注释去掉即可:

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


赵高欣
发布于:2014-08-09 21:31

@流云的设置是正确的。当然也可以把这个设置直接放到apache的虚拟主机设置里面,禁用htaccess,提高apache的性能。

此外还可以写PHP,如下代码,放到settings.php或者hook_init都可以。

// Remove www
if ($_SERVER['HTTP_HOST'] == 'www.example.com') {
  header('HTTP/1.0 301 Moved Permanently');
  header('Location: http://example.com'. $_SERVER['REQUEST_URI']);
  exit();
}

还可以用Drupal的模块,比如

Domain Default Redirection: https://www.drupal.org/project/domain_default_redirect


当然Apache配置文件的解决方案最好!