Apache-2.2
Apache VirtualHost 中的重定向 URL?
我有一個帶有 Apache 的專用伺服器,我在上面設置了一些 VirtualHosts。我已經設置了一個來處理 www 域以及非 www 域。
我的 www 的 VH .conf 文件:
<VirtualHost *> DocumentRoot /var/www/site ServerName www.example.com <Directory "/var/www/site"> allow from all </Directory> </VirtualHost>
有了這個
.htaccess
:RewriteEngine on RewriteBase / RewriteCond %{HTTP_HOST} ^www.example.com [NC] RewriteRule ^(.*)$ http://example.com/$1 [L,R=301]
有沒有一種簡單的方法可以將 www 重定向到非 www 版本?目前我將兩個版本發送到相同的版本
DocumentRoot
並使用.htaccess
,但我確信我必須能夠在 VirtualHost 文件中做到這一點。
事實證明
mod_rewrite
,除了規則之外,VirtualHosts 文件中的規則很好RewriteBase
。我最終得到了這個:<VirtualHost *> ServerName www.example.com RewriteEngine on RewriteCond %{HTTP_HOST} ^www.example.com RewriteRule ^/(.*)$ http://example.com/$1 [L,R=301] </VirtualHost>
編輯:根據 joschi 在評論中的建議,我現在使用以下
Redirect
指令使用這個簡化版本mod_alias
:<VirtualHost *> ServerName www.example.com Redirect 301 / http://example.com/ </VirtualHost>