如何使整个网站支持';www';和';非www';使用.htaccess
我刚刚将我的站点移动到一个新服务器,这是MacOSX服务器 问题是我没有太多的控制权,有一个小问题[或者对其他人来说可能是大问题] 当人们访问我的网站时如何使整个网站支持';www';和';非www';使用.htaccess,.htaccess,mod-rewrite,.htaccess,Mod Rewrite,我刚刚将我的站点移动到一个新服务器,这是MacOSX服务器 问题是我没有太多的控制权,有一个小问题[或者对其他人来说可能是大问题] 当人们访问我的网站时http://mydomain.com无论是否使用www都可以,但我在名为forum的子目录中有另一个文件夹,我只想访问这个网站,就像http://www.mydomain.com/forum当我访问http://mydomain.com/forum这将导致找不到页面,我当前的解决方案是在我的站点所在的文件夹www中创建一个目录,该文件夹名为fo
http://mydomain.com
无论是否使用www
都可以,但我在名为forum
的子目录中有另一个文件夹,我只想访问这个网站,就像http://www.mydomain.com/forum
当我访问http://mydomain.com/forum
这将导致找不到页面,我当前的解决方案是在我的站点所在的文件夹www
中创建一个目录,该文件夹名为forum
,重定向到http://www.mydomain.com/forum
现在我的问题是,我如何创建一个对.htaccess的重写规则,使其同时支持www和非www版本,以便访问者可以选择访问我的网站
对不起,如果我发错了地方
谢谢有很多方法可以剥猫皮,但我的直觉告诉我,两个行为不同的域应该是不同的
VirtualHost
条目,可能有不同的文档根
在本例中,我将创建两个指向相同DocumentRoot
的虚拟主机,因为在大多数情况下http://example.com
和http://www.example.com
是同一个站点,除了example.com
想要禁止某些事情
http://example.com
可以查找特定的URL,如/forum
,但失败,允许其他URL继续访问文档根目录
http://www.example.com
不关心这些;它只允许正常访问其URL。我使用以下方法:
<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>
ServerName域名.com
DocumentRoot/u02/web/hosting/domain.com
重新启动发动机
重写cond%{HTTP_HOST}^domain\.com
重写规则^/(.*)$http://www.domain.com/$1[L,R=永久,L]
服务器名www.domain.com
DocumentRoot/u02/web/hosting/www.domain.com
....
第一个vhosts只是将所有流量从domain.com重定向到第二个vhosts www.domain.com我想到了这个解决方案,但它不起作用,因为他可能希望
domain.com
不进行外部重定向,而只是作为网站的备用名称,但功能有所减少(block尝试以这种方式访问/forum
)。尽管301重定向可能是处理对example.com/forum
的访问的更好方法,而不是404重定向。