代码之家  ›  专栏  ›  技术社区  ›  martin

虚拟主机上的Symfony(文档根问题)

  •  3
  • martin  · 技术社区  · 15 年前

    我正在用Symfony和localhost(XAMPP)开发一个应用程序,我希望模拟与web服务器相同的条件。

    web服务器的配置如下所示:

    /www   => mydomain.com
    /foo   => foo.mydomain.com
    /bar   => bar.mydomain.com
    ...
    

    我要把我的Symfony应用程序放到 /www direcotry因此将有:

    /www
    /www/apps
    /www/apps/frontend
    /www/apps/frontend/...
    /www/apps/backend
    /www/apps/backend/...
    /www/cache
    /www/config
    ... and so on...
    /www/web
    

    问题是文档根仍然设置为 /万维网 /www/web .
    当然,如果我打电话的话,它会起作用的 http://mydomain.com/web 但我想你明白这是一个愚蠢的解决方案。

    所以我的问题是 :是否有任何方法可以使用.htaccess或其他工具更改/绕过默认文档根目录设置?

    编辑: I solved it .

    3 回复  |  直到 14 年前
        1
  •  4
  •   Pekka    15 年前

    我对Symfony不太了解但是 /web 应该是文档根目录。出于安全原因,所有其他目录都应该位于文档根目录之外,并避免 /网 另一个的URL中的一部分。但看起来你已经知道了。

    如果可以编辑web服务器的配置,请尝试反映该配置并设置 DocumentRoot 到web目录。

    如果你不能做到这一点:就不可能改变 网站根目录 .htaccess 文件,但可以重写所有请求,以便它们转到 /网 内部使用 mod_rewrite . 这是一个困难的问题,但如果你不能施加影响,这可能是最好的解决方案

    我不是mod_rewrite大师,所以我不能提供一个例子(我必须先测试它,我现在不能这样做),但我相信有人会的。也许加上 修改 注意你的问题。

    更新: 未经测试但 工作投入 .htaccess 归档 /www :

    RewriteEngine on
    RewriteBase /
    
    RewriteCond %{REQUEST_URI} !^/web/ 
    RewriteRule .* /web/%1 [QSA]
    

    http://www.domain.com/ 而不是 http://www.domain.com/web/ 当然

    .htaccess Symfony端的规则-您必须尝试一下。

        2
  •  0
  •   Benoit    15 年前

    /www /www/web 在virtualHost中配置并允许php(如果受 open_basedir /万维网 目录

        3
  •  0
  •   Clement Herreman    15 年前

    更改symfony希望您的目录命名的方式:

    // config/ProjectConfiguration.class.php
    class ProjectConfiguration extends sfProjectConfiguration
    {
      public function setup()
      {
        $this->setWebDir($this->getRootDir().'/www/or/whatever/directory');
      }
    }
    
    推荐文章