令人难以置信的是没有好的教程或简单的参考指南使用裸域(无子域)作为主要的在线url,我可以find。
我试图configuration这发生在我的httpd.conf中的Apache。 由于我仍然是这个服务器的一个相对新手,试图弄清楚我自己所能做的就是configuration一些令人讨厌的redirect循环和错误400。
有更多的常见笔记:
http:// – > https://
和
裸体到 – > www。
和一吨.htaccess的东西(不感兴趣)
我想要的是http://www.domain.com – > http://domain.com
我发现最有用的东西是这样的: 在Apache上的多个域(包括www-“subdomain”)?
我终于使用了ceejayoz在这篇文章中提到的解决scheme,有些人指出是混乱和复杂的,因为它得到了预期的结果,但我想知道这个在未来的最佳做法。
我会很高兴在正确的方向推动。
提前致谢。
如果你已经启用mod_rewrite
,你可以像这样强制:
RewriteCond %{HTTP_HOST} ^www\.domain\.tld$ RewriteRule ^(.*)$ http://domain.tld/$1 [R=301,L]
或者,使用ServerName www.domain.tld
定义一个额外的虚拟主机,并且总是使用HTMLredirect到domain.tld
,如下所示:
<meta http-equiv="refresh" content="0;URL='http://domain.tld/'" />
或者在Apache vhostconfiguration里面
Redirect permanent / http://domain.tld
使用www.example.com
有很多好处,而不是example.com
。 但是,两者都是可行的select。 要做你想要的,只需切换标准文档中的域使用www.
域。
我的方法是使用单个虚拟主机。 为所需的域定义虚拟主机,然后将别的域添加为别名。
以下规范应强制裸域的规范名称。 (重写条件规则从apache重写文档修改,以从名称中删除www.
。)
ServerName example.com ServerAlias www.example.com UseCanonicalName On RewriteEngine On RewriteCond %{HTTP_HOST} !^example\.com [NC] RewriteCond %{HTTP_HOST} !^$ RewriteRule ^/(.*) http://example.com/$1 [L,R]