我目前正在开发一个 Symfony2 应用程序,它暂时必须托管在一个子目录中。通常人们会更改 Apache vhost 中的 DocumentRoot,但目前这是不可能的。也不可能在根目录中放置任何东西(例如上面public_html/
)。
DocumentRoot 设置为/public_html/
. Symfony2 应用程序在子目录中的结构如下所示:
- public_html/
-- dev/
---- app/
---- bin/
---- src/
---- vendor/
---- web/
无需任何特殊配置即可通过http://example.com/dev/web/app.php访问该应用程序。但是,我想将其更改为http://example.com/dev而无需移动文件。
我想出了以下内容.htaccess
:
RewriteEngine on
RewriteCond %{REQUEST_URI} !dev/web/
RewriteRule (.*) /dev/web/app.php/$1 [L]
这有点工作,但 Symfony2 报告以下错误:No route found for "GET /dev/"
.
如果我将 RewriteRule 更改为RewriteRule (.*) /dev/web/$1 [L]
我可以使用http://example.com/dev/app.php/dashboard(当然,dashboard 是一个示例)访问应用程序,这会导致No route found for "GET hboard"
,请注意hboard。调用http://example.com/dev/app.php/确实会在 / 处完美呈现页面,并且指向所有资产的链接也可以正常工作。
任何帮助将非常感激。随着时间的推移,这个应用程序也必须从到dev/
移动/
。因此,也欢迎为此提供解决方案。