1

我已经设置子域通配符来接受任何子域,主要问题是我使用 DirectAdmin,我无法使用 DA API 将子域指向特定路径我想将任何子域指向名为 subdomian 的文件夹,该文件夹存在于子目录中

例如 sub.domian.com 应该指向 /public_html/subdomains/sub

像这样的东西

<VirtualHost *:80>
  VirtualDocumentRoot /public_html/subdomains/%1
</VirtualHost>

如果我将包含“.x”之类的单词的子域设置为指向该路径,这将是我的理想选择

也许喜欢

<VirtualHost *.x:80>
  VirtualDocumentRoot /public_html/subdomains/%1
</VirtualHost>

抱歉,如果问题听起来很愚蠢

4

3 回答 3

0

看起来这是你需要的:

<VirtualHost *:8080>
    ServerName localhost
    ServerAlias *.localhost

    #the %1 is the asterisk value! No regexp supported!
    VirtualDocumentRoot /home/%1/project 
    VirtualScriptAlias  /home/%1/project

    <Directory /home/*/project/>
    #...
    </Directory>
</VirtualHost>
于 2017-03-24T18:22:21.547 回答
-3

这可以完全使用 htaccess 来完成。您必须启用通配符子域名 *.domain.com 并将其指向 domain.com

然后您可以使用以下类型的规则:

RewriteCond %{HTTP_HOST} !www.domain.com [NC]
RewriteCond %{HTTP_HOST} ^([a-z0-9-]+).domain.com [NC]
RewriteRule ^(.*/) /%1/index.php [PT,L]

您可以在存储子域文件时修改 RewriteRule。

于 2013-04-14T14:13:34.583 回答
-3

找到了答案

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} !www\.domain\.com$[NC]
RewriteCond %{HTTP_HOST} ^(.*?)\.domain\.com$
RewriteCond %{REQUEST_URI} !folder/(.*?)/
RewriteRule ^(.*) /folder/%1%{REQUEST_URI} [L]
</IfModule>
于 2013-04-15T07:28:09.210 回答