Apache2 - 虚拟主机,将设置子域之外的所有流量引导至某个子域?

Apache2 - 虚拟主机,将设置子域之外的所有流量引导至某个子域?

我目前正在使用由 apache 托管的备用子域名(www 之外)。

我正在努力去理解其中的某些事物是如何运作的。

例如,我有,dev.test.com而且www.test.com效果很好。

不过,我想改变它,这样如果有人去test.comanything.test.com他们就会被引导到www.test.com

我尝试了以下操作:

ServerAlias www.test.com *:test.com

但这一切只是将所有流量引导test.com至设置的目录位置。

以下是我目前拥有的:

<VirtualHost *:80>
ServerAdmin [email protected]
ServerName test.com
ServerAlias dev.test.com

DirectoryIndex index.php
DocumentRoot /var/www/test.com/dev_www/

<Directory />
    Options -FollowSymLinks -Includes -Indexes  -MultiViews
    AllowOverride None
</Directory>

<Directory /var/www/test.com/dev_www/>
    <LimitExcept GET POST>
         deny from all
    </LimitExcept>
    Options -FollowSymLinks -Includes -Indexes -MultiViews
    AllowOverride None
    Order allow,deny
    allow from all
</Directory>

</VirtualHost>

<VirtualHost *:80>
ServerAdmin [email protected]
ServerName test.com
ServerAlias www.test.com

DirectoryIndex index.php
DocumentRoot /var/www/test.com/www/

 <Directory />
    Options -FollowSymLinks -Includes -Indexes  -MultiViews
    AllowOverride None
</Directory>

<Directory /var/www/test.com/www/>
    <LimitExcept GET POST>
         deny from all
    </LimitExcept>
    Options -FollowSymLinks -Includes -Indexes -MultiViews
    AllowOverride None
    Order allow,deny
    allow from all
</Directory>

</VirtualHost>

任何建议都将不胜感激!提前谢谢您!

答案1

你会想要查看改写模块

RewriteCond %{HTTP_HOST} !^www\.test\.com$ [NC]
RewriteCond %{HTTP_HOST} !^dev\.test\.com$ [NC]
RewriteRule ^(.*)$ http://www.test.com/$1 [R=301,L]

这表示:如果主机不等于“www.test.com”或“dev.test.com”(不区分大小写),则重定向到 www.test.com

相关内容