Symfony2 - 重写url以添加现有.htacess文件的www前缀

1 apache .htaccess rewrite symfony

Symfony2核心配置提供以下.htacess文件:

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

我知道这会从浏览器中的url中删除app.php.我想添加以下重写规则来添加www.每次用户输入没有www的域名时,访问我的网站.:

    RewriteCond %{HTTP_HOST} ^valutao\.com$ [NC]
    RewriteRule ^(.*)$ http://www.valutao.com/$1 [L,R=301]
Run Code Online (Sandbox Code Playgroud)

所以现在我有以下.htacess文件:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ app.php [QSA,L]
    RewriteCond %{HTTP_HOST} ^valutao\.com$ [NC]
    RewriteRule ^(.*)$ http://www.valutao.com/$1 [L,R=301]
</IfModule>
Run Code Online (Sandbox Code Playgroud)

我的问题是app.php会再次出现.似乎我的规则只是隐藏了基本配置.以下是我输入valutao.com时网址中显示内容的示例:http://www.valutao.com/app.php

有人知道如何解决这个问题.不幸的是,我只掌握了重写规则的基本知识.

感谢帮助

Jak*_*las 5

你只需要改变顺序(www重写应该先行).

我也减少了对域名的依赖:

<IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteCond %{HTTP_HOST} !^www\.
    RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]

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