【问题标题】:symfony app_dev.php in folder outside document rootsymfony app_dev.php 在文档根目录外的文件夹中
【发布时间】:2016-04-22 05:48:45
【问题描述】:

我正在翻新一个旧的网络应用程序,用 Symfony 替换它的一部分。

我的文件夹结构:

/symfony            <---symfony install
/trunk              <---document root

文档根目录是 trunk/,因此对旧版应用程序的更改很少。

在我的虚拟主机配置中,我有:

<VirtualHost *:80>
    ServerName webapp.example.com

    DocumentRoot /path/to/project/trunk

    Alias /ajax ../symfony/web
    Alias /app_dev.php/ ../symfony/web/app_dev.php

</VirtualHost> 

对 webapp.example.com/ajax 的请求有效

但是对 webapp.example.com/app_dev.php/ajax 的请求会导致 404 错误。

注意我只需要重写以 /app_dev.php/ 开头的路径,即。包括尾部斜杠。

【问题讨论】:

    标签: php symfony routing apache2.4 mod-alias


    【解决方案1】:

    编辑

    这是 apache 文档的链接 http://httpd.apache.org/docs/2.4/mod/mod_alias.html#alias

    问题似乎是第二个 Alias 指令末尾的斜杠

    尝试改变这个:

    Alias /app_dev.php/ ../symfony/web/app_dev.php
    

    到这里:

    Alias "/app_dev.php" "../symfony/web/app_dev.php"
    

    来自文档:

    Note that if you include a trailing / on the URL-path then the server will require a trailing / in order to expand the alias. That is, if you use
    
    Alias "/icons/" "/usr/local/apache/icons/"
    then the URL /icons will not be aliased, as it lacks that trailing /. Likewise, if you omit the slash on the URL-path then you must also omit it from the file-path.
    

    另一种选择

    如果这不起作用,请尝试删除第二个 Alias 指令,因为您已经使用 /ajax URL 路径指向 symfony/web 文件夹。

    【讨论】:

      【解决方案2】:

      根据 http://httpd.apache.org/docs/2.4/mod/mod_alias.html#alias

      “只匹配完整的路径段”

      这意味着我不能使用 Alias 来重写 app_dev.php 文件。

      需要使用 Aliasmatch。此外,它似乎不支持相对路径,至少在 Apache 2.4.10 上不支持,但我找不到任何相关文档。

      <VirtualHost *:80>
          ServerName webapp.example.com
      
          DocumentRoot /path/to/project/trunk
      
          Alias "/ajax" "../symfony/web"
          AliasMatch "^/app_dev.php/(.*)" "/path/to/project/symfony/web/app_dev.php/$1"
      
      </VirtualHost>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-04-16
        • 2014-02-19
        • 2014-08-11
        • 2014-11-30
        • 2021-12-05
        • 1970-01-01
        • 2021-11-06
        相关资源
        最近更新 更多