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

时间:2012-05-02 16:50:30

标签: apache .htaccess symfony rewrite

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

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

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

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

所以现在我有以下.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>

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

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

感谢您的帮助

1 个答案:

答案 0 :(得分: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>