2012-06-04 25 views
-3

即使在URL中写入“www”,$ _SERVER ['HTTP_HOST']也只有domain.com没有“www”。

我无法重定向从非www到www因此。如何解决这个问题?

 ["HTTP_HOST"]=> 
     string(8) "ca-fi.ru" 
     ["HTTP_COOKIE"]=> 
     string(120) "d7b6b86aae18e551749a9da9d54f3daf=floar2lr37318dc76ask49bii5; 849c6485c12558d081c065b4d94a566b=d9iqj8s6oqo41kipg3qaefq497" 
     ["HTTP_USER_AGENT"]=> 
     string(99) "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.52 Safari/536.5" 

     ["PATH"]=> 
     string(28) "/usr/local/bin:/usr/bin:/bin" 
     ["SERVER_SIGNATURE"]=> 
     string(69) " 
    Apache/2.2.20 (Ubuntu) Server at ca-fi.ru Port 80 

    " 
     ["SERVER_SOFTWARE"]=> 
     string(22) "Apache/2.2.20 (Ubuntu)" 
     ["SERVER_NAME"]=> 
     string(8) "ca-fi.ru" 
     ["SERVER_ADDR"]=> 
     string(13) "192.168.10.12" 
     ["SERVER_PORT"]=> 
     string(2) "80" 
     ["REMOTE_ADDR"]=> 
     string(12) "192.168.10.1" 
     ["DOCUMENT_ROOT"]=> 
     string(8) "/var/www" 

     ["REQUEST_METHOD"]=> 
     string(3) "GET" 

     ["REQUEST_URI"]=> 
     string(1) "/" 
     ["SCRIPT_NAME"]=> 
     string(10) "/index.php" 
     ["PHP_SELF"]=> 
     string(10) "/index.php" 
     ["REQUEST_TIME"]=> 
     int(1338819407) 
+1

你在做回声或$ VAR = ...;你正在向我们展示什么? –

+1

'$ _SERVER ['HTTP_HOST']'设置您的客户端发送的主机头。如果你在'http:// www.domain.com /'上,主机头必须包含'www'部分,因为浏览器会发送它。 – CodeCaster

+0

无法添加var_dump,因为“您的帖子没有太多的上下文来解释代码段;请更清楚地解释您的场景。” – alhimikst

回答

2

如果你只是想从非www重定向到www,我建议不使用PHP的header()功能(我假设你正在使用),但使用mod rewrite

创建.htaccess文件放在根目录具有以下内容:

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

不,这不工作,我只是有无限的重定向 – alhimikst

+0

你有mod_rewrite启用?你有没有用你的域名替换example.com? – Jeroen

+0

是的,mod_rewrite是打开的,并且域名正确 – alhimikst

相关问题