首页 文章

产品路线需要`app.php`

提问于
浏览
0

prod环境中除 \ 之外的所有路径都要求包含 app.php . 使用 app.php 可以使用所有站点功能 . 开发环境的行为与预期一致 . 环境是Ubuntu 12.04(在Win 8 VirtualBox VM上),PHP 5.4,Apache 2.2 . 典型的Apache错误日志条目:

[客户端127.0.0.1]文件不存在:/ var / www / volunteer / web / non-profits

一些额外的细节:

  • PHP 5.4.31-1 deb.sury.org~precision 1

  • .htaccess 存在于 ...\web

  • mod_rewrite 已启用 .

  • Symfony 2.5.3 prod缓存已被清除(很多次)
    安装了

  • 资产

  • 资产倾销

  • vhost目录索引包含 app.php

  • 尝试了AllowOverride all

我错过了什么?

这是.htaccess(没有评论)

DirectoryIndex app.php

<IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$
    RewriteRule ^(.*) - [E=BASE:%1]

    RewriteCond %{ENV:REDIRECT_STATUS} ^$
    RewriteRule ^app\.php(/(.*)|$) %{ENV:BASE}/$2 [R=301,L]

    RewriteCond %{REQUEST_FILENAME} -f
    RewriteRule .? - [L]

    RewriteRule .? %{ENV:BASE}/app.php [L]
</IfModule>

<IfModule !mod_rewrite.c>
    <IfModule mod_alias.c>
        RedirectMatch 302 ^/$ /app.php/
    </IfModule>
</IfModule>

一条路线:

$ php app/console router:debug --env=prod
[router] Current routes
 Name                              Method   Scheme Host Path                      
...
 nonprofits                        ANY      ANY    ANY  /non-profits

3 回答

  • 0

    你知道Apache是否正在执行.htaccess中的内容吗?也许你需要AllowOverride all?

  • 1

    也许你忘了安装资产?

    尝试输入您的终端:

    • php app / console assets:install --env = production

    • php app / console assetic:dump --env = production

    如果您正在 生产环境 中,显然要添加--env = 生产环境 部件 .

    确保您的vhost中还包含以下行:

    DirectoryIndex app.php

  • 0

    我应该问的问题是,"Why was Apache ignoring .htaccess?"答案是在Ubuntu forums here中找到的 . 使用webmin,我更改了 AllowOverride 指令,现在它读取:

    <Directory /var/www/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>
    

    这只是我一直在寻找的水平 .

相关问题