使用htaccess重定向子域而不更改地址栏中的URL

时间:2013-09-16 11:32:43

标签: apache .htaccess mod-rewrite subdomain url-routing

我在我的网络主机上设置了一个子域名,如下所示:

en.domain.com     pointing to the folder     /en/

但是当在地址栏中输入“en.domain.com”时,URL会变为

domain.com/en/

如果我进一步导航,让我们对文件夹“aaa”说,URL变为

domain.com/en/aaa/

有没有办法让子域名保留在地址栏中,如下所示?:

en.domain.com/aaa/

1 个答案:

答案 0 :(得分:4)

我尝试了一切,没有人可以帮助我。经过大量的研究,我找到了这个,它对我有用。所以这是我自己的答案,这可能有助于其他人寻找同样的事情。

这将使显示子域(“en.domain.com”)的URL在地址栏中不会更改,即使有人输入“domain.com/en/”,它也会将URL重写为“en .domain.com“:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^domain\.com$
RewriteRule ^en(/(.*))? http://en.domain.com/$2 [QSA,L,R=301]

这会破坏您网站的路径,导致不会显示样式和图片。因此,您需要根据网站结构中每个网页的位置,将其放在网站每个页面的HTML代码中:

对于“en”文件夹中的页面:

<head>
<base href="http://domain.com/en/" />
</head>

对于文件夹“aaa”中的页面:

<head>
<base href="http://domain.com/en/aaa/" />
</head>

对于“bbb”文件夹中的页面:

<head>
<base href="http://domain.com/en/aaa/bbb/" />
</head>

欢迎你! : - )