我有一个子域xxx.yyy.fr
配置了apache2到文件夹/var/www/my_symfony_project/web/
默认情况下,symfony将所有其他查询重定向到/app.php
(使用/ web目录中的.htaccess):
# Rewrite all other queries to the front controller.
RewriteRule ^ %{ENV:BASE}/app.php [L]
因此,xxx.yyy.fr
被重定向到xxx.yyy.fr/app.php/
我有一条路线:xxx.yyy.fr/app.php/my_route/{optional_param}
,带有控制器和视图。
我的问题是:当我转到xxx.yyy.fr/{optional_param}
时,如何重写此网址,就像我转到完整的网址xxx.yyy.fr/app.php/my_route/{optional_param}
一样?
谢谢!
答案 0 :(得分:0)
你只有一条路线吗?
否则它将始终重定向到您设置的路线。
我认为你需要这样的东西。还有一件事。如果将所有内容重定向到单个URL,则images /,js /,css / files将无法正常工作。他们也会重定向。
你可以尝试这样的事情。这就是我目前使用的。
DirectoryIndex app.php
<IfModule mod_rewrite.c>
Options +FollowSymlinks
RewriteEngine On
# Explicitly disable rewriting for front controllers
RewriteRule ^/web/app.php/your_route - [L]
# Fix the bundles folder
RewriteRule ^css/(.*)$ /web/css/$1 [QSA,L]
RewriteRule ^js/(.*)$ /web/js/$1 [QSA,L]
RewriteRule ^bundles/(.*)$ /web/bundles/$1 [QSA,L]
RewriteRule ^fonts/(.*)$ /web/fonts/$1 [QSA,L]
RewriteRule ^images/(.*)$ /web/images/$1 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
# Change below before deploying to production
RewriteRule ^(.*)$ /web/app.php/your_route [QSA,L]
# RewriteRule ^(.*)$ /web/app_dev.php [QSA,L]
</IfModule>
您不需要/ web部分,因为您已经重定向到/ var / www / my_symfony_project / web /
希望这有帮助