【发布时间】:2015-06-25 18:06:29
【问题描述】:
访问时
www.example.com/test1/test2/index.php
(服务器上的文件是/var/www/website1/test1/test2/index.php)
我们得到:
<base href="<?php echo __DIR__; ?>">
// bad: <base href="/var/www/website1/test1/test2/">
<base href="<?php echo dirname($_SERVER['REQUEST_URI']); ?>">
// bad: <base href="/test1/test2">
// a <base href> dir must end with a / (or \ on Windows)
<base href="<?php echo rtrim(dirname(parse_url($_SERVER['PHP_SELF'], PHP_URL_PATH)), '/') . '/'; ?>">
// good: <base href="/test1/test2/">
最后一个解决方案有效 (*),但我觉得它有点脏/ hack。有没有更简洁的解决方案来设置 <base href="..."> 当前 PHP 文件的目录?
(*) 事实上,最后一个解决方案不适用于 Windows 服务器,因为添加 '/' 会破坏 <base href>(应该是 '\')。
【问题讨论】:
-
您需要什么价值?不清楚你的问题。
-
@PedroLobito 我想将
<base href="...">设置为当前PHP文件的目录(此目录必须以/或\结尾,具体取决于平台) -
检查我的答案,这三个选项中的任何一个都适合您吗?
-
您可以使用
DIRECTORY_SEPARATORPHP 常量,它会根据您的平台动态加载,而不是斜杠/反斜杠,这只是您的问题。 -
@LukasHajdu 似乎这是问题所在:stackoverflow.com/questions/29731957/…