2010-06-09 40 views
1

我有这种奇怪的行为,PHP头在web服务器和本地主机上的行为不同。标题重定向到不存在的页面?

在网络托管函数

header("Location: /content/".$page['url_language']."/".$page['direction']."/".$w['id']."/") 

重定向到的index.php和/content/".$page['url_language']."/".$page['direction']."/".$w['id']."/"被发送作为参数。

但后来我做同样的在本地主机上,我的浏览器重定向到一个不存在的,而不是指数/content/".$page['url_language']."/".$page['direction']."/".$w['id']."/"页面

。 如何发生这种情况,Web服务器和localhost上没有.htaccess来更改设置。也许我错过了一些设置,有什么建议吗?

回答

0

HTTP/1.1通过参数“location:”询问绝对URI。 某些浏览器接受相对路径,但是您的问题可能来自此处。

如果它是服务器上的绝对路径,则他的配置可能与本地文件不同。 检查/内容是否真的在服务器的根目录下(而不是在/ www或类似的东西中)。

这里有一小段代码可以用来测试你的全局变量。

<?php 
/* Redirection to an other webpage in the same file */ 
$host = $_SERVER['HTTP_HOST']; 
$uri = rtrim(dirname($_SERVER['PHP_SELF']), '/\\'); 
$extra = 'mypage.php'; 
header("Location: http://$host$uri/$extra"); 
exit; 
?>` 
0

它可以编写重定向规则到Apache的配置文件,您的服务器可能是在不directorys或文件路由到index.php的所有URL重定向规则,并解析字符串作为参数。不知道服务器正在运行什么,我不能告诉你在哪里的Apache配置文件。

另外你如何访问网站上的url字符串,你说它解析url字符串作为参数,你使用$ _GET ['some_var']?

Luke

+0

感谢您的回复fellaz。我只是打电话给我的网站托管支持,并告诉我,我的请求正在重写,他说是的,Apache配置已被编辑为重写,我更新我的Apache配置与新指令后,一切开始正常工作,谢谢你jeesus – Jevgeny 2010-06-09 13:22:57

0

感谢您的答复fellaz。我只是打电话给我的网站托管支持,并告诉我,我的请求正在重写,他说是的,Apache配置已被编辑为重写,我更新我的Apache配置与新指令后,一切开始正常工作,谢谢你jeesus - Jevgeny 0秒前编辑