htaccess指向子域到文件夹

时间:2011-06-14 09:41:02

标签: .htaccess subdomain point

您好如何通过htaccess将某个子域指向某个文件夹。

我用这个来指出,它有效,但我不能让它适用于其他子域..

RewriteCond %{HTTP_HOST} !^www\.example.org
RewriteCond %{HTTP_HOST} some1\.example.org
RewriteRule ^(.*)$ /some1_folder/index.php/$1
RewriteRule ^some1$ /some1_folder/index.php/$1

http://some1.example.org/Content => http://example.org/some1/index.php/Content

如果我成功:

RewriteCond %{HTTP_HOST} !^www\.example.org
RewriteCond %{HTTP_HOST} some1\.example.org
RewriteRule ^(.*)$ /some1_folder/index.php/$1
RewriteRule ^some1$ /some1_folder/index.php/$1

RewriteCond %{HTTP_HOST} !^www\.example.org
RewriteCond %{HTTP_HOST} some2\.example.org
RewriteRule ^(.*)$ /some2_folder/index.php/$1
RewriteRule ^some2$ /some2_folder/index.php/$1

我收到500内部错误。

另外,我如何将所有不存在的域指向某个文件夹(foo.example.org => www.example.org)。谢谢。

1 个答案:

答案 0 :(得分:6)

使用RewriteRule中的%1为所有子域制定一套规则,以便从之前的RewriteCond中获取括号内的值。

RewriteCond %{HTTP_HOST} !^www\.example\.org
RewriteCond %{HTTP_HOST} ^(.*)\.example\.org
RewriteRule ^(.*)$ http://www.example.org/%1/index.php/$1

要将所有不存在的子域重定向到域,请在包含ServerAlias *的虚拟主机配置文件末尾创建一个catch-all VirtualHost块以匹配任何未定义的域,并将所有请求转发到的RewriteRule您希望默认的域名。