作者:匿名用户
链接:http://www.zhihu.com/question/28491981/answer/47442420
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
拿万网的云虚拟主机来试了下,用.htaccess可成功建两个站.
一.在根目录创建文件.htaccess
二.在根目录创建com和cn两个文件夹.
三.在.htaccess文件添加以下内容.
RewriteEngine On
RewriteBase /
#不带www的301重定向到带www.
RewriteCond %{HTTP_HOST} ^abc\.com$ [NC]RewriteRule ^(.*)$ http://www.abc.com/$1 [L,R=301]
RewriteCond %{HTTP_HOST} ^abc\.cn$ [NC]
RewriteRule ^(.*)$ http://www.abc.cn/$1 [L,R=301]
#访问域名为http://abc.com或者http://www.abc.com的,且不是/com/文件的,且不存在的文件或目录
#重定向到/com/文件下.比如:http://www.abc.com/1.html则实际访问文件为/com/下的1.htmlRewriteCond %{HTTP_HOST} ^(www\.)?abc\.com$ [NC]
RewriteCond %{REQUEST_URI} !^/com/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-dRewriteRule ^(.*)$ /com/$1 [L]
#重定向首页到/com/文件目录下.
RewriteCond %{HTTP_HOST} ^(www\.)?abc\.com$ [NC]
RewriteRule ^(/)?$ com/index.php [L]#以上是设置http://www.abc.com访问/com/文件目录,
#以下是设置http://www.abc.cn访问/cn/文件目录.
RewriteCond %{HTTP_HOST} ^(www\.)?abc\.cn$ [NC]
RewriteCond %{REQUEST_URI} !^/cn/
RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /cn/$1 [L]
RewriteCond %{HTTP_HOST} ^(www\.)?abc\.cn$ [NC]RewriteRule ^(/)?$ /cn/index.php [L]
#以下设置访问地址既不是.http://abc.com也不是http://www.abc.cn的重定向到http://www.abc.com域名
RewriteCond %{HTTP_HOST} !^(www\.)?abc\.com$ [NC]
RewriteCond %{HTTP_HOST} !^(www\.)?abc\.cn$ [NC]
RewriteRule ^(/)?$ http://www.abc.com [L,R=301]
这样就可以了,http://www.abc.com访问根目录下的/com/目录,http://www.abc.cn访问/cn/目录,达到了一个万网虚拟主机建两个不同的站的效果.有一个问题是,你访问http://www.abc.com/com/或者http://www.abc.cn/com/和访问http://www.abc.com是一样的效果,这样的话,你就得设置robots.txt来禁止搜索引擎访问/com/和/cn/目录.