header ('Location:'.__DIR__.'/view/prijava_view.php'
如果我在index.php文件中使用上面的标题,它只显示一个带有“localhost”URL的空白页面。如果我使用include而不是标题,它可以工作。
这是 DIR 魔术常数的问题吗?看来你不能在标题中使用它,或者我的代码有问题吗?
答案 0 :(得分:7)
__DIR__
是文件系统路径。它与客户端浏览器将看到的URL无关。如果您的网站的文件实际存储在
/home/sites/example.com/html/view/projava_view.php
这个php脚本中的代码看着 DIR ,你会得到
/home/sites/example.com/html/view/
如果你通过header()传递出来进行重定向,你将被重定向到文件系统路径
header("Location: http://example.com/home/site/example.com/html/view/.....");
外部用户无法访问。该路径不在您的文档根目录中,浏览器实际上将请求完整路径,然后服务器将在文档根目录AGAIN上进行处理,因此完整的最终请求实际上是
/home/sites/example.com/html/view/home/sites/example.com/html/view/projava_view.php
通常,__DIR__
魔术常量在尝试构建URL空间路径时完全没用,因为它不适用于URL。
答案 1 :(得分:0)
__DIR__
魔法常量适用于php 5.3+。如果你的主机php版本不支持它,你应该使用dirname(__FILE__)
代替