Apache-2.2

將所有子域重定向到 vhost 內的主域

  • October 22, 2016

我只是想重定向虛擬主機中尚未提及的所有子域ServerName以重定向到空子域。我試圖在這個域的所有其他虛擬主機之後將它添加到我的 httpd.conf 中。

<VirtualHost *:80>
   ServerName *.example.com
   RedirectPermanent / http://example.com/
</VirtualHost>

空子域(之前載入)的部分如下所示。

<VirtualHost *:80>
   DocumentRoot /var/www/example/htdocs
   ServerName example.com
   <Directory /var/www/example/htdocs>
       Options FollowSymLinks
       AllowOverride All
       Order Allow,Deny
       Allow from all
   </Directory>
</VirtualHost>

重新啟動 httpd 服務後,將瀏覽器指向abc.example.com. 我究竟做錯了什麼?我希望這個簡單任務的其他答案中描述的基於正則表達式的匹配不需要。

只需在vhost配置文件的主塊下方添加一個塊。只需為子域指定ServerAlias使用萬用字元*。最後,使用 指定重定向地址RedirectPermanent

Listen 80
<VirtualHost *:80>
       ServerAdmin webmaster@localhost
       DocumentRoot /var/www/html
       ServerName example.com

       <Directory /var/www/html/>
           Options Indexes FollowSymLinks
           AllowOverride All
           Require all granted
       </Directory>

       ErrorLog ${APACHE_LOG_DIR}/error.log
       CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

<VirtualHost *:80>
   DocumentRoot /var/www/html
   ServerAlias *.example.com
   RedirectPermanent / http://example.com/
</VirtualHost>

引用自:https://serverfault.com/questions/727055