基本上我有一个经典的虚拟主机:
ServerName www.site.com
ServerAlias site.com
即使有人打开$_SERVER['SERVER_NAME'] = 'www.site.com';
site.com
这可能吗?
答案 0 :(得分:2)
不,PHP对ServerName,ServerAlias等一无所知。
正确的解决方案是将您的网络服务器配置为从您的所有别名域重定向到主域。从SEO的角度来看,这也是一件好事。
你可以这样做,例如使用mod_rewrite
:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\..+$ [NC]
RewriteCond %{HTTP_HOST} (.+)$ [NC]
RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L]
如果您有其他域名,只需为他们设置一个单独的VirtualHost,然后重定向到您的主域名:
<VirtualHost ...>
ServerName site2.com
ServerAlias *.site2.com
Redirect / http://www.site.com/
</VirtualHost>
答案 1 :(得分:1)
将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.com
变量中看到SERVER_NAME
。