Php Symfony baseUrl不';不响应apache重写并中断所有路由

Php Symfony baseUrl不';不响应apache重写并中断所有路由,php,.htaccess,symfony,Php,.htaccess,Symfony,想象您自己是一个简单的symfony安装: symfony new testsite 现在想象一下这是在apache服务器的webroot中。当然,这不起作用,因为symfony webroot位于/web/文件夹中 因此,您可以制定一个简单的重写规则,并将其放入symfony文件夹中的htaccess中: RewriteEngine On RewriteRule ^(.*)$ web/$1 [QSA,L] 这是有效的。好极了所以,你试试“”指南,你会发现你的控制器是404ing 因此,s

想象您自己是一个简单的symfony安装:

symfony new testsite
现在想象一下这是在apache服务器的webroot中。当然,这不起作用,因为symfony webroot位于
/web/
文件夹中

因此,您可以制定一个简单的重写规则,并将其放入symfony文件夹中的htaccess中:

RewriteEngine On
RewriteRule ^(.*)$ web/$1 [QSA,L]
这是有效的。好极了所以,你试试“”指南,你会发现你的控制器是404ing

因此,symfony似乎从路径的开始处删除了3个字符。经过一点调试,显示它正在从
$\u服务器['SCRIPT\u NAME']
获取基本url,这是问题的原因,因为重写url时,这不会改变


有没有合适的方法来解决这个问题,或者我只需要在我的app.php中手动重新定义
SCRIPT\u NAME

symfony-test.local/web/app_dev.php/lucky/number
您应该将DocumentRoot指定为
web/
文件夹!通常情况下就是这样做的。有关更多详细信息,请阅读以下内容:

您能编辑您的帖子并发布您的“准确”代码吗?这可能很简单,非常简单,我直接复制粘贴了他们的示例(当然是用一个PHP开放标记),我在这里实际编写的唯一代码就是htaccess文件,就在那里。无论我搜索了多少次,symfony几乎从来没有直接从webroot运行过(这很奇怪,因为它似乎是一个常见的用例),那么您是否将
web/
文件夹作为apachedocumentroot?如果您发布了apachevirtualdirectory配置或配置,那就太好了,以防您遗漏了什么。我只是想帮忙。不,我特别说过整个symfony安装都在webroot中。但事实证明这是symfony(14064)中的一个已知错误,我将提交一份PR来修复它