htaccess子域名?

时间:2012-08-20 10:03:11

标签: .htaccess subdomain

我想知道是否可以仅使用htaccess代码创建子域名, (无需在主机控制面板中设置一个)

我有一个名为“mobile”的文件夹, 它的位置是这样的:http://www.domain.com/mobile

我希望能够输入http://mobile.domain.com并查看移动文件夹, 这是否可以通过在htaccess中编写一些代码来实现? 如果是的话,我该怎么做?

由于

2 个答案:

答案 0 :(得分:1)

只要配置为处理*.domain.com域的所有请求,您就可以执行此操作,然后只需确保mobile.domain.com的{​​CID}已www.domain.com

如果你知道你想要什么子域,你可以像这样枚举它们(将这些规则放在你的文档根目录中的htaccess文件中):

RewriteEngine On
RewriteCond %{HTTP_HOST} !^(www\.) [NC]
RewriteCond %{HTTP_HOST} ^mobile\.domain\.com$ [NC]
RewriteCond %{REQUEST_URI} !^/mobile/
RewriteCond %{DOCUMENT_ROOT}/mobile%{REQUEST_URI} -f [OR]
RewriteCond %{DOCUMENT_ROOT}/mobile%{REQUEST_URI} -d
RewriteRule ^(.*)$ /mobile/$1 [L]

否则,如果你想任意这样做,它会变得更复杂一些:

RewriteEngine On
RewriteCond %{HTTP_HOST} !^(www\.) [NC]
RewriteCond %{HTTP_HOST} ^(.+)\.domain\.com$ [NC]
RewriteCond %1:%{REQUEST_URI} !^([^:]+):/\1/
RewriteCond %{HTTP_HOST} ^(.+)\.domain\.com$ [NC]
RewriteCond %{DOCUMENT_ROOT}/%1%{REQUEST_URI} -f [OR]
RewriteCond %{DOCUMENT_ROOT}/%1%{REQUEST_URI} -d
RewriteRule ^(.*)$ /%1/$1 [L]

答案 1 :(得分:0)

取决于您的域名配置。

如果您使用通配符ServerAlias进行设置,请执行以下操作:

ServerName example.com
ServerAlias *.example.com

DocumentRoot /var/www/example.com/

请求将落在文件夹中,.htaccess将被评估,使您可以使用mod_rewrite。如果您没有指定ServerAlias指令,请求将永远不会到达文件夹,因此您无法对其执行任何操作。