2009-06-23 117 views
4

我使用LAMP服务器,我需要重定向请求一样:重定向301 www.www.example.com

www.www.example.com至www.example.com和像其他变化( wwww.example.com等)

我知道我可以在.htaccess中完成,但我不知道我应该用来表示所有这些可能性的正则表达式。

还是有什么不同的方法,从虚拟主机来?

+0

只是为了让您知道:有一个标准定义应该使用www.example.org作为示例URI。 – 2009-06-23 17:19:23

+0

@Lennart你认真吗?谁写的?! – Cogsy 2009-06-23 17:24:32

回答

5

我喜欢:

# force www IN URL 
RewriteEngine on 
RewriteCond %{HTTP_HOST} !^www\.example\.com [NC] 
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L] 
# END force www IN URL 

基本上什么这 www.example.com会得到重定向301'd。

2

请参阅此文章以实现“通配符子域名”。你将需要实现.htaccess和修改虚拟主机。

http://www.easymodrewrite.com/example-subdomains

如果你感兴趣的仅仅限制为“www.www”,“WWWW。”及以上的其他例子,你可以轻松地与一些服务器端编码这样做(这使得它比实现更多的.htaccess代码更灵活)。只需检测子域是什么,然后重定向到你想要的地方。

0

在Apache中使用基于名称的虚拟主机,你可以这样做:

<VirtualHost *:80> 
    ServerName example.com 
    ServerAlias wwww.example.com www.www.example.com [space seperated list] 

    Redirect/http://www.example.com/ 
</VirtualHost> 

重定向可以采取一个参数来指定重定向类型。