symfony2重写规则.htaccess app.php

Fra*_*hoa 44 .htaccess mod-rewrite symfony

我将symfony2项目上传到服务器树丛.主页面加载,但所有链接都被破坏.我尝试将app.php添加到网址中.它确实有效,但是:

我有这样的路线:

www.something.com/app.php/something

我希望他们是:

www.something.com/something.

我一直在阅读,我应该在.htaccess上加上一些重写规则.

我发现了这些规则,但它们似乎不起作用:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ app.php [QSA,L]
</IfModule>
Run Code Online (Sandbox Code Playgroud)

gre*_*reg 58

在你的.htaccess文件中尝试这个(在web目录中):

<IfModule mod_rewrite.c>
    Options +FollowSymlinks
    RewriteEngine On

    # Explicitly disable rewriting for front controllers
    RewriteRule ^app_dev.php - [L]
    RewriteRule ^app.php - [L]

    RewriteCond %{REQUEST_FILENAME} !-f

    # Change below before deploying to production
    #RewriteRule ^(.*)$ /app.php [QSA,L]
    RewriteRule ^(.*)$ /app_dev.php [QSA,L]
</IfModule>
Run Code Online (Sandbox Code Playgroud)

  • 如果其他人从apache获得400错误请求发送错误尝试向重写添加斜杠,即RewriteRule ^(.*)$ /app_dev.php [QSA,L] (2认同)

Jim*_*Dev 25

为了改进whistlergreg的答案,我添加了一行,以便bundle文件夹不被破坏.这将确保图像等外部资源不会被破坏.

<IfModule mod_rewrite.c>
    Options +FollowSymlinks
    RewriteEngine On

    # Explicitly disable rewriting for front controllers
    RewriteRule ^/web/app_dev.php - [L]
    RewriteRule ^/web/app.php - [L]

    # Fix the bundles folder
    RewriteRule ^bundles/(.*)$ /web/bundles/$1  [QSA,L]

    RewriteCond %{REQUEST_FILENAME} !-f
    # Change below before deploying to production
    #RewriteRule ^(.*)$ /web/app.php [QSA,L]
    RewriteRule ^(.*)$ /web/app_dev.php [QSA,L]
</IfModule>
Run Code Online (Sandbox Code Playgroud)