2012-03-19 38 views
0

我刚搬到我的网站到一个新的服务器,这是Mac OS X服务器如何使整个网站支持“WWW”和“无www”与的.htaccess

的问题是,我不有它更控制并有一个小问题[或可能大他人]

当人们访问我的网站http://mydomain.com这将很好地工作或不www,但我在一个子目录另一个文件夹名为forum和只想访问这个网站就像http://www.mydomain.com/forum一样去,当我访问http://mydomain.com/forum它将导致页面未找到,我目前的解决方案是在文件夹中创建一个目录在我的网站上有一个文件夹中找到名为forum与重定向到http://www.mydomain.com/forum

现在我的问题是我怎么可以创建一个重写规则为.htaccess,使其同时支持版本www和非www的,这样的游客将有一个选项访问我的网站。

对不起,如果我发布在错误的地方。

感谢

回答

1

我用这个:

<VirtualHost *:80> 
    ServerName domain.com 
    DocumentRoot   /u02/web/hosting/domain.com 

    RewriteEngine On 
    RewriteCond %{HTTP_HOST} ^domain\.com 
    RewriteRule ^/(.*)$ http://www.domain.com/$1 [L,R=Permanent,L] 
</VirtualHost> 

<VirtualHost *:80> 
    ServerName www.domain.com   
    DocumentRoot   /u02/web/hosting/www.domain.com 
.... 
</VirtualHost> 

第一虚拟主机只是重定向所有流量从domain.com到第二虚拟主机www.domain.com

+0

我认为这个解决方案,但它不会因为他的工作可能希望'domain.com'不要做外部重定向,而只是作为网站的备用名称,但功能减少(阻止尝试以这种方式访问​​'/ forum')。虽然301重定向可能是更好的方式来处理对“example.com/forum”的访问,而不是404访问它们。 – Kaz 2012-03-19 07:29:42

1

有很多方法对皮肤的猫,但我的直觉说,有不同的行为两个不同的领域应该是不同的VirtualHost条目,可能有不同的文档根。

在这种情况下,我会做两个虚拟主机指向同一DocumentRoot因为大部分http://example.comhttp://www.example.com同一个网站,除了example.com要禁止一些事情。

VirtualHost对于http://example.com可以查找特定的网址,例如/forum并使其失败,从而允许其他网站传递到访问文档根目录。

VirtualHost对于http://www.example.com不关心任何这些;它只允许正常访问其URL。