从您的网站删除WWW前缀

Rob*_*Rob 13 url web

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

它是重定向,重写还是完全不同的东西?

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

Ste*_*rds 12

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

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


Gre*_*ill 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>
Run Code Online (Sandbox Code Playgroud)

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


Gid*_*don 10

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

供参考:

HTTP状态列表

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


MC.*_*MC. 5

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

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