好的,我在url /admin为我的自定义博客创建了一个管理界面。
我是否可以使用相同的包含(包括自动加载)作为根目录。
如果可能,我还希望能够自动更正导航中的链接,这样当从/admin访问时,它们将转到/更改为../index.php中的index.php。
谢谢,Nico
发布于 2009-07-24 22:23:12
最佳实践是定义一个'ABSOLUTE_PATH‘常量,该常量包含所有内容所在的目录。在此之后,您可以简单地复制和粘贴所有内容,因为它定义的是“完整”路径,该路径不会因目录而改变。
示例
define("ABS_PATH", $_SERVER['DOCUMENT_ROOT']);
or
define("ABS_PATH", dirname(__FILE__));
// This defines the path as the directory the file is in.然后,您可以在任何时候简单地执行此操作以包含一个文件
include(ABS_PATH . "/path/to/file");发布于 2009-07-24 22:27:14
最简单的方法是使用绝对路径/URL。
对于URL,在某个地方定义一个指向应用程序根的常量/变量,如下所示:
define('ROOT_URL', 'http://www.example.com');或
$root_url = 'http://www.example.com';并在每个链接中使用它,例如:
<a href="{$root_url}/my-page.php">blah</a>这样,总是OK (当你将项目安装到另一台服务器上,或子目录中时,你只需要修改一个常量/变量,所有东西都可以正常工作)
对于包含/要求,也始终使用绝对路径;一种解决方案是使用dirname,如下所示:
include dirname(__FILE__) . '/my_file.php';
include dirname(__FILE__) . '/../my-other-file.php';__FILE__是当前文件,您在其中写入此行;dirname获取包含该文件的目录的路径(完整路径)。
这样,您就不必担心文件的相对路径了。
发布于 2009-07-24 22:35:57
另一个答案类似于将前两个建议结合在一起。您可以定义常量:
define('ABSPATH', dirname(__FILE__).'/');然后,假设config.php需要包含在站点的许多文件中,那么您可以使用以下语句来完成此操作:
include(ABSPATH.'config.php');希望这能有所帮助。
https://stackoverflow.com/questions/1180459
复制相似问题