从您的网站删除WWW前缀

时间:2009-04-28 10:33:55

标签: url web

Stack Overflow(和其他网站)如果在作为网址的一部分输入时删除了'www'前缀?

是重定向,重写还是完全不同的其他内容?

更新:我特别想知道IIS 6的上下文

9 个答案:

答案 0 :(得分:12)

在Apache上,它看起来像这样(在.htaccess文件中):

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

答案 1 :(得分:12)

一种简单的方法是使用Apache“Redirect”指令:

<VirtualHost *:80>
    ServerName www.example.com
    Redirect permanent / http://example.com/
</VirtualHost>

<VirtualHost *:80>
    ServerName example.com
    # remainder of server configuration goes here
</VirtualHost>

Redirect指令会自动保留URL中/之后的任何内容。我发现这种方法比Rewrite方法更容易阅读和理解。

答案 2 :(得分:10)

点击Fiddler,我们可以看到服务器响应带有“301 Moved Permanently”状态,并将其引用到http://stackoverflow.com。 由于StackOverflow托管在Windows 2k8 IIS7 上,因此他们会立即在IIS7中设置此重定向。

仅供参考:

a list of HTTP statuses

如果您是.NET开发人员,您可能知道“Respose.Redirect”,这会创建一个302 Object Moved状态。在这种情况下,像301状态代码的搜索引擎更好,因为他们知道将来不应该回到www.stackoverflow.com。

答案 3 :(得分:5)

您可以通过多种方式实现,使用mod_rewrite和重定向是我的最爱。像这样:

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

答案 4 :(得分:4)

重定向。子域“www.stackoverflow.com”只会重定向到“stackoverflow.com”。

答案 5 :(得分:1)

您需要添加一个指向Web服务器的默认dns条目。

ping site.com并验证ip是否指向webserver,如果不是,则需要添加默认的DNS条目。

进行基本设置:

您必须添加主机标头http://www.visualwin.com/host-header/

使用主机标题www.site.com创建1个站点

在“主目录”选项卡中,将其设置为永久重定向到http://site.com

使用主机标题site.com

创建第二个站点

如果您希望www.site.com/file.html重定向到site.com/file.html,您需要使用类似ISAPI_Rewrite的更高级设置或使用自定义404页面来执行此操作。

答案 6 :(得分:0)

这还有很长的路要走,但据我所知这是一个DNS设置。我认为您不需要指定主机地址(WWW是站点所在的主机(或计算机/群集......)的名称。)。

我认为您可以将其设置为将所有请求发送到默认主机。

不是100%肯定,但请查看DNS的可能性。

希望有助于或者至少让你朝着正确的方向前进。

答案 7 :(得分:0)

你可以使用类似的IIS重写器来执行mod_rewrite为Apache做的事情。一个好的是IIRF。规则是:

RewriteCond  %{HTTP_HOST}  ^www\.example\.com$     [I]
RedirectRule ^(.*)$        http://example.com/$1   [R=301]

你也可以像这样通配主机名:

RewriteCond  %{HTTP_HOST}  ^(.+)\.example\.com$    [I]
RedirectRule ^(.*)$        http://example.com/$1   [R=301]

IIRF可以免费使用。

答案 8 :(得分:0)

对于apache

<VirtualHost *:80>
ServerName yourdomain.tld
ServerAlias www.yourdomain.tld