1

Symfony2 核心配置带有以下 .htacess 文件:

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

我知道这会从浏览器的 url 中删除 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 时 url 中显示的示例:http ://www.valutao.com/app.php

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

感谢帮助

4

1 回答 1

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>
于 2012-05-02T17:26:30.097 回答