![Apache2 - 虚拟主机,将设置子域之外的所有流量引导至某个子域?](https://linux22.com/image/628745/Apache2%20-%20%E8%99%9A%E6%8B%9F%E4%B8%BB%E6%9C%BA%EF%BC%8C%E5%B0%86%E8%AE%BE%E7%BD%AE%E5%AD%90%E5%9F%9F%E4%B9%8B%E5%A4%96%E7%9A%84%E6%89%80%E6%9C%89%E6%B5%81%E9%87%8F%E5%BC%95%E5%AF%BC%E8%87%B3%E6%9F%90%E4%B8%AA%E5%AD%90%E5%9F%9F%EF%BC%9F.png)
我目前正在使用由 apache 托管的备用子域名(www 之外)。
我正在努力去理解其中的某些事物是如何运作的。
例如,我有,dev.test.com
而且www.test.com
效果很好。
不过,我想改变它,这样如果有人去test.com
或anything.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