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
有人知道如何解决这个问题.不幸的是,我只掌握了重写规则的基本知识.
感谢帮助
你只需要改变顺序(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)