我正在 Symfony 和本地主机(XAMPP)上开发一个应用程序,我想模拟与网络服务器上相同的条件。
Web 服务器配置如下:
/www => mydomain.com
/foo => foo.mydomain.com
/bar => bar.mydomain.com
...
我将把我的 Symfony 应用程序放入/www
目录,所以会有:
/www
/www/apps
/www/apps/frontend
/www/apps/frontend/...
/www/apps/backend
/www/apps/backend/...
/www/cache
/www/config
... and so on...
/www/web
问题是文档根目录仍然设置为/www
目录,但 Symfony 期望它在/www/web
.
当然,如果我打电话就可以了http://mydomain.com/web
但我想你明白这是一个安静愚蠢的解决方案。
所以我的问题是:有什么办法可以使用 .htaccess 或其他方式更改/绕过默认文档根设置吗?
EDIT: 我解决了.
我对 Symfony 不太了解,但是/web
应该是文档根目录。出于安全原因,所有其他目录都应位于文档根目录之外,并避免/web
另一个 URL 中的一部分。但看起来你已经知道了。
如果您可以编辑 Web 服务器的配置,请尝试反映并设置DocumentRoot
到网络目录。
如果您不能这样做:则无法更改DocumentRoot
in a .htaccess
文件,但可以重写所有请求,以便它们转到/web
内部使用mod_rewrite
。这很糟糕,但如果你不能影响的话,这可能是最好的解决方案DocumentRoot
.
我不是 mod_rewrite 专家,所以我无法提供示例(我必须先测试它,但我现在不能这样做),但我确信有人会的。也许添加mod_rewrite
标记您的问题。
Update:未经测试但是should工作。放入一个.htaccess
文件输入/www
:
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_URI} !^/web/
RewriteRule .* /web/%1 [QSA]
然后您需要更改配置文件才能使用http://www.domain.com/
代替http://www.domain.com/web/
当然。
我不能说这是否会干扰其他任何事情.htaccess
Symfony 端的规则 - 你必须尝试一下。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)