我已将symfony2项目部署到共享托管中的子目录。
我只能通过以下网址访问:
我希望通过以下网址访问:
我在网络目录中只有默认的.htaccess规则:
RewriteEngine On
RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$
RewriteRule ^(.*) - [E=BASE:%1]
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^app\.php(/(.*)|$) %{ENV:BASE}/$2 [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule .? - [L]
RewriteRule .? %{ENV:BASE}/app.php [L]
有人可以告诉我,我该怎么办?
Tkanks提前
答案 0 :(得分:1)
您必须将您的网络服务器配置为使用web
作为应用程序的文档根目录,而不是您安装Symfony的基本目录。对于Apache,那将是DocumentRoot
指令。
# wrong
DocumentRoot /var/www/MY-SYMFONY-SITE/
# right
DocumentRoot /var/www/MY-SYMFONY-SITE/web/
如果您无权访问该指令,您的ISP应提供设置文档根目录的工具,例如通过网络界面。如果您根本无法更改文档根目录,则不应在该服务器上运行Symfony。
如果您尝试使用安装目录作为文档根目录运行Symfony(理论上可行),则会产生巨大的安全问题,因为敏感信息(例如app
目录中的配置文件将会是世界可读的。