【问题标题】:Symfony app_dev.php is working but production it is redirect to localhostSymfony app_dev.php 正在工作,但生产它被重定向到本地主机
【发布时间】: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 之外的连接。执行此操作的代码行数很少。

标签: php apache symfony virtualhost


【解决方案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 日志了吗?尝试加载您的网页后看看,也许您会找到线索
  • 您配置了默认虚拟主机?禁用它是个好主意(至少在您解决了问题之后)
猜你喜欢
  • 2016-04-30
  • 2018-06-03
  • 2018-08-01
  • 2021-02-22
  • 2019-08-02
  • 2020-08-16
  • 2018-11-15
  • 1970-01-01
相关资源
最近更新 更多