我已经在共享托管中部署了一个Symfony2项目。
我只能通过以下网址访问:
- http:mydomain/subdirectory/web
- http:mydomain/subdirectory/web/page1
- 等...
我希望通过以下网址访问:
- http:mydomain/subdirectory
- http:mydomain/subdirectory/page1
我在Web目录中只有此规则的默认值.htaccess:
重新撰写
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提前
您必须配置Web服务器以使用web
作为应用程序的文档根,而不是安装Symfony的基本目录。对于Apache,那将是DocumentRoot
指令。
# wrong
DocumentRoot /var/www/MY-SYMFONY-SITE/
# right
DocumentRoot /var/www/MY-SYMFONY-SITE/web/
如果您无法访问该指令,则ISP应提供一个工具来设置文档根,例如通过Web界面。如果您根本无法更改文档root,则不应在该服务器上运行Symfony。
如果您尝试将安装目录作为文档root(理论上可能是可能的(运行Symfony,则您正在创建一个巨大的安全问题,因为敏感信息(例如app
目录中的配置文件(将是世界上可读的。