有没有办法删除'/web';从Symfony应用程序中的url,而不移动';web';目录到根目


Is there a way to remove '/web' from url in Symfony application without moving content of 'web' directory to root?

我在使用Symfony创建应用程序时遇到了一个问题,即url中出现了'/web'。我找到了一种方法,通过将"web"目录的内容移动到根目录来消除这种情况。但我认为这不是一个好的发展实践,必须有其他方法。有人能告诉我是否有其他方法可以做到这一点吗?比如我们使用htaccess从url中删除app_dev.php?

在我使用wamp服务器的情况下,为了摆脱"/web",你需要在httpd-vhosts.conf中配置一个虚拟主机,如下所示:

<VirtualHost *:80>
    DocumentRoot C:'wamp'www'YourProjectFolder'web
    ServerName projectName.local
</VirtualHost>

我认为你应该在你的主机服务器上也这样做。

如果您无法编辑http.conf,并且启用了mod_rewrite,只需在文档根目录中放置一个.htaccess文件,并将每个请求重定向到/web文件夹。

RewriteEngine on
RewriteRule ^(.*)$ /web/$1 [L,QSA]

不要从Symfony中移动/web文件夹。您只需要将vhost或Apache默认根目录指向您的web目录。例如:

您可以在httpd.conf:中更改

# ...
DocumentRoot "your_symfony_folder/web"
<Directory "your_symfony_folder/web">
# ...

您可以在项目根文件夹中创建.htaccess(其中是像app、bin、src…这样的文件夹(:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ /web/$1 [QSA,L]
</IfModule>

我想你们在流汗。

如果我错了,请纠正我,但我只是把web目录中的所有内容都放在根目录中,就把它删除了。然后我删除了app_dev.php,并将app.php重命名为index.php.