2012-03-30 54 views
2

基本上我有一個經典的虛擬主機使用:

ServerName www.site.com 
ServerAlias site.com 

我想始終$_SERVER['SERVER_NAME'] = 'www.site.com';即使有人打開site.com

這可能嗎?

+2

總之......沒有。 – Amber 2012-03-30 22:20:00

+0

@Amber如果使用htaccess轉發? – safarov 2012-03-30 22:22:10

回答

2

沒有,PHP不知道什麼服務器名,ServerAlias等

正確的解決方案是配置你的服務器從你的所有別名域的主域名重定向。從SEO的角度來看,這也是一件好事。

你可以這樣做,例如使用mod_rewrite

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

如果您有其他的域,只需設置爲它們單獨的虛擬主機會被重定向到主域:

<VirtualHost ...> 
     ServerName site2.com 
     ServerAlias *.site2.com 
     Redirect/http://www.site.com/ 
</VirtualHost> 
0

它通常是最好的做法到www重定向到空域,或反之亦然。你可以通過添加這對你的.htaccess:

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

這樣,site.com會重定向到www.site.com,而您只能看到www.site.comSERVER_NAME變量。