我正在尝试在 Web 服务器中安装 Symfony2,但我有一个关于 URL 的问题。
我想在这个网址中安装它。
http://mywebsite.com/gestor
因此,可以将 /web 文件夹中分配的文件放入此目录(gestor),并将其他文件(/app、/bin、/src...)放在服务器的另一个路径中(使它们成为私有的,并且不可能通过 URL 访问?
哪个是最好的方法?只需这样做并修改app.php需要吗?
我正在尝试在 Web 服务器中安装 Symfony2,但我有一个关于 URL 的问题。
我想在这个网址中安装它。
http://mywebsite.com/gestor
因此,可以将 /web 文件夹中分配的文件放入此目录(gestor),并将其他文件(/app、/bin、/src...)放在服务器的另一个路径中(使它们成为私有的,并且不可能通过 URL 访问?
哪个是最好的方法?只需这样做并修改app.php需要吗?
我会尽力帮助你,但我不是这个话题的专家?您是在共享主机还是专用主机上安装?
如果您使用的是专用主机,您可以去这里。
但我假设您正在共享主机上安装(由 KBrogan 提供):谁能指出我如何将 www.site.com/appname/web/app.php 修改为更性感的 www.site.com 网址它将自动重定向到 www.site.com/appname... 而不检查长版本的 url?
<bernardnapoleon> i've been googling for hours now. >><
<helios_ag> r u on shared hosting?
<bernardnapoleon> yes
<KBrogan> bernard, i have just the solution for you if you would like everything redirected to site.com/index.php with your content stored in webroot/Symfony
<bernardnapoleon> really? you're amazing!
<bernardnapoleon> that's it
<KBrogan> 1) move Symfony/web to webroot/
<bernardnapoleon> okay but wouldn't that break the folder structure of symfony?
<KBrogan> nope
<KBrogan> 2) change the require_once tags in both files webroot/app(_dev)?.php to point to Symfony/app/... instead of pointing to ../Symfony/app
<KBrogan> example: require_once __DIR__.'/Symfony/app/AppKernel.php';
<bernardnapoleon> oks! done
<KBrogan> make .htaccess in webroot this:
<KBrogan> RedirectMatch 404 "^/Symfony(/.*)?$"
<KBrogan> RedirectMatch 404 "/\..*"
<KBrogan> RedirectMatch 404 "/(config||app(_dev)?).php"
<KBrogan> <IfModule mod_rewrite.c>
<KBrogan> RewriteEngine On
<KBrogan> RewriteCond %{REQUEST_FILENAME} !-f
<KBrogan> RewriteRule ^(.*)$ index.php [QSA,L]
<KBrogan> </IfModule>
<KBrogan> last step - make a symlink index.php => app_dev.php
<bernardnapoleon> ohhhhhhhhhhhhhhhhhhhhhhhhhh...................
<KBrogan> Do you have shell access on your host bernard?
<bernardnapoleon> nope
<helios_ag> not good idea to publish dev env on prod env
<bernardnapoleon> helios_ag: yep yep.
<KBrogan> dev env ip blacklists itself. Not really an issue until you've deployed
<bernardnapoleon> KBrogan: Thank you!
<bernardnapoleon> i'll just rename app.php to index.php incase i can't do symlink
<KBrogan> if you don' t have shell access: either make a link with php, or rename the app.php
<bernardnapoleon> yeah. Thanks Again Bro
<bernardnapoleon> =)
<bernardnapoleon> all this time I thought the answer is in mod_rewrite
<KBrogan> i'm quite happy with the results there. Spent a couple of hours tweaking it
<KBrogan> I've got shell access, so I set up an alias dev and an alias prod which switches the environment for me and clears the cache
<KBrogan> Question: is there a twif filter which pretty prints all your html?
<KBrogan> twig*
<bernardnapoleon> oh cool.
<bernardnapoleon> not an expert but I think you have to post process that.
<KBrogan> by the way bernard, the RedirectMatch 404 "/\..*" bit will hide all of your .htaccess files and make them return 404 instead of 403
<KBrogan> as well as any other file that stats with .
<KBrogan> and any other file besides /Symfony/* , index.php, app_dev.php, app.php, will be served directly by Apache
<bernardnapoleon> ohhhh