使用$ _SERVER [HTTP_HOST]的域名错误?

时间:2015-05-27 15:32:59

标签: php .htaccess redirect http-host

我尝试设置一个htaccess文件,它只是重定向所有不同的网址:

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

但我认识到一些奇怪的东西,由于某种原因它会导致无休止的循环。所以我做了一些测试。

我的网站空间如下所示:

 -root 
 ---folder 1 
 ---folder 2

我有2个域名,其中一个是以根文件夹为目标,另一个是以子文件夹为目标:

-root <--- http://another-url.com
--- folder 1
--- folder 2 <---- http://www.example.com

我认为来自我的htaccess文件的%{HTTP_HOST}正在将每个网址识别为http://another-url.de,这与我的www.example.com不同,因此它会重定向到www.example.com,这会导致结果在一个无限循环中。

我做了一个简单的检查:我在我的文件夹2中创建了一个PHP文件,用于打印$_SERVER[HTTP_HOST]。通过http://www.example.com打开文件,我得到了输出www.another-url.com。

有谁知道最近发生了什么?我怎么能解决这个问题?!

1 个答案:

答案 0 :(得分:0)

我知道这是一个老问题,但我今天在谷歌浏览器中存在同样的问题,在托管许多假开发域的本地环境中。以下是为我修复它的原因:

  • 打开开发人员工具(PC上的Ctrl-Alt-i,Mac上的Cmd-Option-i)
  • 按住刷新按钮
  • 选项出现后,选择Empty Cache and Hard Reload

之后,加载正确的域。因此,Chrome必须有一个错误的DNS条目缓存或其他东西。