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.php
? symfony2
里面没有app.dev
,只有app.php
和app_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?