使用虚拟主机,我已经习惯了使用这个:
<VirtualHost: *:80> ServerName www.example.com Redirect permanent / http://example.com/ </VirtualHost>
但我常常看到重写使用:
RewriteEngine On RewriteCond %{HTTP_HOST} ^www.example.com$ [NC] RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]
一种方法比另一种更有优势吗?
如果你不需要mod_rewrite,那就不要使用它。 对于像这样简单的例子来说,mod_alias是完全足够的,而且更容易理解。 此外,尽pipe次要,mod_alias比mod_rewrite更快 – 这可以在高容量的网站上有所作为。
这两个指令导致相同的301代码被发送回浏览器。 所以对这个或那个没有好处。 你应该select一个基于你更舒适使用的一个,并使得阅读configuration文件更容易。
两者都能够发送301(永久redirect)代码以外的东西。 为了清晰起见SEO和浏览器,您应该始终使用301来清除(或需要)“www”。 其他types的redirect不太常用(很less)。 一个“临时redirect”是最常见的,只有当redirect的目的地会经常改变(例如,链接你最近的博客条目或类似的东西)才能使用。