域名重写到一个文件夹

问题描述:

我对整个.htaccess的东西相当新,但我有一个问题。我想建立一个系统,以便在域之前输入的每个东西都会重写到网站上的文件夹中。为了使它更清楚,这是一个例子:域名重写到一个文件夹

如果用户类型,例如:

example1.example.com 

它有让现场形成根/例1 /文件夹。

如果用户类型,例如:

klsdjf.example.com 

它有让现场形成根/ klsdjf /文件夹。

我希望这是我所想达到一个明确的解释。

感谢名单,

+0

看到这个http://*.com/questions/1456956/redirect-subdomain-to-folder – 2012-03-27 07:56:44

+0

感谢您的快速回复,但是当我包装它时,它给了我这个错误:此外,遇到403禁止错误同时尝试使用ErrorDocument来处理请求。 – jorveld 2012-03-27 08:20:34

从我的理解,你想从一个通配符子域重写规则被路由到根文件夹。

所以,

*.example.com => example.com/* 

步骤1.配置你的DNS

首先,你必须确保你的DNS主机配置是否正确。您必须确保您的域名接受指向您主机IP地址的通配符(*)。这应该是一个简单的A记录。

第2步:告知Apache治疗子域不同的方式

做到这一点后,你必须告诉Apache区别对待子域。

在httpd.conf中,看的东西,看起来像这样:

ServerAlias www.example.com example.com 

它改成这样:

ServerAlias www.example.com example.com *.example.com 

example.com,当然,作为您的网站的名称。

步骤3.实际重写规则

然后,这里是你的.htaccess:

Options +FollowSymLinks 
    Options +Indexes 
    RewriteEngine On 
    RewriteBase/
    RewriteCond %{HTTP_HOST} !www.example.com$ [NC] 
    RewriteCond %{HTTP_HOST} ^(www.)?([a-z0-9-]+).example.com [NC] 
    RewriteRule (.*) %2/$1 [L] 

这应该工作。