Symfony app_dev.php 正在工作,但生产它被重定向到本地主机

Posted

技术标签:

【中文标题】Symfony app_dev.php 正在工作,但生产它被重定向到本地主机【英文标题】:Symfony app_dev.php is working but production it is redirect to localhost 【发布时间】:2015-04-26 00:15:32 【问题描述】:

我是 symfony 的新手。我使用 symfony 创建了一个名为 abc 的项目。我已经为该项目创建了虚拟主机。

这是我的虚拟主机。

<VirtualHost *:80>
    ServerName abc.dev
    DocumentRoot /home/dinuka/workspace/abc/web 

    <Directory /home/dinuka/workspace/abc/web>
        Options Indexes FollowSymLinks Includes ExecCGI
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

当我使用localhost/abc/app.php 时,它工作正常。但我使用abc.dev/app.php 它只是转发到localhost。我也可以使用abc.dev/app_dev.php。我已清除所有缓存。

有什么问题?

【问题讨论】:

你的意思是app.phpsymfony2 里面没有app.dev,只有app.phpapp_dev.php 是的。我改变了它。谢谢 我不认为这是一个 symfony 的问题。它看起来像你的 apache 上的一个问题。你应该在谷歌上搜索一下如何配置虚拟主机,因为有几个步骤可以验证。 检查 app_dev.php 脚本内部,默认情况下不接受 localhost 或 127.0.0.1 之外的连接。执行此操作的代码行数很少。 【参考方案1】:

这是一个 Apache 配置问题,与 Symfony 无关。

首先:您是否在您的/etc/hosts 文件中(如果您使用的是 Linux/MacOS 机器)包含一个将 abc.dev 解析为 127.0.0.1 的条目?

另一方面,您没有定义 DirectoryIndex,我向您粘贴了 Symfony 项目的基本配置,希望它对您有用:

<VirtualHost *:80>
    ServerName      abc.dev
    ServerAlias     www.abc.dev

    DocumentRoot    "/home/dinuka/workspace/abc/web"
    DirectoryIndex  app.php

    <Directory "/home/dinuka/workspace/abc/web">
        AllowOverride None
        Allow from All

        <IfModule mod_rewrite.c>
            Options -MultiViews
            RewriteEngine On
            RewriteCond %REQUEST_FILENAME !-f
            RewriteRule ^(.*)$ app.php [QSA,L]
        </IfModule>
    </Directory>

</VirtualHost>

【讨论】:

是的。我用了你的虚拟主机。我的 etc/hosts 文件也正确。但它不起作用。 您看到 Apache 日志了吗?尝试加载您的网页后看看,也许您会找到线索 您配置了默认虚拟主机?禁用它是个好主意(至少在您解决了问题之后)

以上是关于Symfony app_dev.php 正在工作,但生产它被重定向到本地主机的主要内容,如果未能解决你的问题,请参考以下文章

如何通过 ssh 在 amazon ec2 上使用虚拟主机从 symfony 中删除 app_dev.php / app.php?

开发在 app_dev.php 中可见但在 app.php 中不可见

如何使用 xampp 和 apache 设置 web 根目录并在 localhost 中隐藏 app.php 和 app_dev.php?

Symfony启动过程详细学习

使用Symfony开发模式执行并发请求时Apache崩溃

生产环境中的 Symfony 2 Assetic css 和 js 404