基本上我有一个经典的vhost:
ServerName www.site.com
ServerAlias site.com我希望即使有人打开site.com,我也希望始终保持$_SERVER['SERVER_NAME'] = 'www.site.com';
这个是可能的吗?
发布于 2012-03-31 06:20:09
不,PHP对ServerName,ServerAlias等一无所知。
正确的解决方案是将您的all服务器配置为从所有别名域重定向到主域。从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>发布于 2012-03-31 06:22:20
通常,最佳实践是将www重定向到空域,反之亦然。您可以通过将以下内容添加到.htaccess中来完成此操作:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^site\.com$ [NC]
RewriteRule ^(.*)$ http://www.site.com/$1 [R=301,L]这样,site.com将重定向到www.site.com,并且您将只在SERVER_NAME变量中看到www.site.com。
https://stackoverflow.com/questions/9951098
复制相似问题