有没有办法在 Symfony 应用程序中从 url 中删除 '/web' 而无需将 '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 所做的那样?
不要从 Symfony 移动 /web
文件夹。您只需将您的虚拟主机或 Apache 默认根目录指向您的 Web 目录。例如:
您可以在 httpd.conf
中更改:
# ...
DocumentRoot "your_symfony_folder/web"
<Directory "your_symfony_folder/web">
# ...
如果您无法编辑 http.conf 且 mod_rewrite 已启用,只需将 .htaccess 文件放入您的文档根目录并将每个请求重定向到 /web 文件夹。
RewriteEngine on
RewriteRule ^(.*)$ /web/ [L,QSA]
在我的例子中,我正在使用 wamp 服务器并摆脱“/web”,您需要在 httpd-vhosts.conf 中配置虚拟主机,如下所示:
<VirtualHost *:80>
DocumentRoot C:\wamp\www\YourProjectFolder\web
ServerName projectName.local
</VirtualHost>
我认为你应该在你的主机服务器上做同样的事情。
您可以在项目根文件夹中创建一个 .htaccess(app、bin、src 等文件夹在哪里...):
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /web/ [QSA,L]
</IfModule>
我觉得你们都在流汗。
如果我错了请纠正我,但我通过简单地将 web 目录中的所有内容放入根目录中来设法将其删除。
然后我去掉了app_dev.php,把app.php重命名为index.php.
我在使用 Symfony 创建应用程序时遇到问题,即 url 中出现“/web”。我找到了一种通过将 'web' 目录的内容移动到根目录来摆脱这种情况的方法。但我认为这不是一个好的开发实践,必须有其他方法。谁能告诉我是否有其他方法可以做到这一点,就像我们使用 htaccess 从 url 中删除 app_dev.php 所做的那样?
不要从 Symfony 移动 /web
文件夹。您只需将您的虚拟主机或 Apache 默认根目录指向您的 Web 目录。例如:
您可以在 httpd.conf
中更改:
# ...
DocumentRoot "your_symfony_folder/web"
<Directory "your_symfony_folder/web">
# ...
如果您无法编辑 http.conf 且 mod_rewrite 已启用,只需将 .htaccess 文件放入您的文档根目录并将每个请求重定向到 /web 文件夹。
RewriteEngine on
RewriteRule ^(.*)$ /web/ [L,QSA]
在我的例子中,我正在使用 wamp 服务器并摆脱“/web”,您需要在 httpd-vhosts.conf 中配置虚拟主机,如下所示:
<VirtualHost *:80>
DocumentRoot C:\wamp\www\YourProjectFolder\web
ServerName projectName.local
</VirtualHost>
我认为你应该在你的主机服务器上做同样的事情。
您可以在项目根文件夹中创建一个 .htaccess(app、bin、src 等文件夹在哪里...):
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /web/ [QSA,L]
</IfModule>
我觉得你们都在流汗。
如果我错了请纠正我,但我通过简单地将 web 目录中的所有内容放入根目录中来设法将其删除。 然后我去掉了app_dev.php,把app.php重命名为index.php.