隐藏地址栏中的子域名

时间:2014-02-04 16:07:45

标签: wordpress .htaccess dns cname

我的主网站位于www.example.com。在subdomain sub.example.com上我正在建立另一个网站。这两个网站都是使用WordPress构建的。这两个域都在同一注册商处注册

我注册了一个域名(比方说:www.example2.com),我想指向sub.example.com。当有人访问www.example2.com时,他/她应该在地址栏中看到www.example2.com而不是sub.example.com。

我试图让它与.htaccess文件一起工作,它有点工作,但不是我希望的方式:

  • 当我进入example2.com时,浏览器打开sub.example.com,在地址栏中显示example2.com(到目前为止,很好)

  • 当我导航到网站上的其他页面时,地址栏显示sub.example.com/another-page而不是example2.com/another-page

  • 当我进入www.example2.com时,浏览器会打开www.example.com

这就是我的.htaccess文件目前的样子:

RewriteEngine On 

RewriteCond %{HTTP_HOST} example2.com$ [NC]
RewriteCond %{HTTP_HOST} www.example2.com$ [NC]

RewriteRule ^(.*)$ http://sub.example.com [R=301,L]

有人可以告诉我如何让它发挥作用吗?

1 个答案:

答案 0 :(得分:0)

试试这个,看看它是否适合你。另外,我会确保www的{​​{1}} dns记录指向与example2.com相同的位置。

example2.com

编辑:

真的是你想要完成的事情,如果可能的话,我会建议使用NameBased虚拟主机。这就是它的设计目标。这样您就可以为多个站点使用相同的IP。此更改在apache配置文件中完成。看这个简单的例子。

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^(www.)?example2\.com$ [NC]
RewriteRule ^(.*)$ http://sub.example.com/$1 [L]

http://httpd.apache.org/docs/2.2/vhosts/name-based.html

告诉服务器每个网站使用哪个文档根目录,因此无需将这些mod重定向和CNAME转换为子域。