【问题标题】:How to set root directory in php如何在php中设置根目录
【发布时间】:2016-08-18 09:12:53
【问题描述】:

我正在开发一个基于 MVC 设计模式的网站。

我需要从public 文件夹访问另一个文件夹,但问题是它将公用文件夹识别为根目录。我在javascript中使用window.location.pathname检查了路径,它返回/,所以实际上不可能访问根目录。

我猜.htaccess 文件会重定向路径。谁能告诉我如何将Web 文件夹设置为根目录?

网页中的.htaccess

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule    ^$    public/    [L]
    RewriteRule    (.*) public/$1    [L]
</IfModule>

.htaccess 公开

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?url=$1 [PT,L]
</IfModule>

【问题讨论】:

  • 你想达到什么目的?您无法使用 Javascript 访问服务器的文件系统!
  • 请检查apache的.conf文件,即配置文件
  • 有了这些.htaccess 规则,您的服务器文档根目录是公开的,外部的所有内容都无法访问,如果您想访问它,也许您应该将它放在您的公共目录中?
  • @brzuchal 我可以修改 .htaccess 以将 Web 目录设置为根目录吗?
  • @Daniel 你已经公开了index.php,你应该能够通过你的应用程序前端控制器调用它,你的应用程序命令和查询就是它在 MVC 中的用途,打破这些规则就是让你的应用程序不安全且不可预测,您的前端控制器是您的主要守卫

标签: javascript php apache


【解决方案1】:

您无法使用 JS 访问 webroot 之外的文件。但是,您可以在公用文件夹中创建符号链接。

ln -s web/your/file web/public/symlink

【讨论】:

    【解决方案2】:

    编写此代码来设置根目录。在您的索引文件中。它可以帮助您以 root 身份登录网络。

        if(!defined('ROOT_PATH')) define('ROOT_PATH','./'); //root path. Damn directories
        define('ROOT_DIR',str_replace('\\\\', '/', realpath(dirname(__FILE__))).'/'); #Get real path for root dir ---linux and windows
    
    print_r(ROOT_DIR);
    

    【讨论】:

      【解决方案3】:

      将此路径设置为您的索引文件。

      $path = "http://www.yourdomain.com/";

      定义('PATH', $path);

      你可以在 php 中调用“PATH”变量的每个地方都可以执行 vardump(PATH);

      我希望这对你有帮助..

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-08-22
        • 1970-01-01
        • 2014-11-21
        • 2010-10-21
        • 2013-03-13
        • 1970-01-01
        • 2011-05-13
        • 1970-01-01
        相关资源
        最近更新 更多