我想知道是否可以仅使用htaccess代码创建子域名, (无需在主机控制面板中设置一个)
我有一个名为“mobile”的文件夹, 它的位置是这样的:http://www.domain.com/mobile
我希望能够输入http://mobile.domain.com并查看移动文件夹, 这是否可以通过在htaccess中编写一些代码来实现? 如果是的话,我该怎么做?
由于
答案 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
指令,请求将永远不会到达文件夹,因此您无法对其执行任何操作。