我有一个Laravel 4安装,我使用样板的htaccess来重定向我的网站:
site.com.br到www.site.com.br(注意www).
但是当我使用诸如site.com.br/TITLE-OF-MY-POST之类的路由时,我被重定向到:
www.site.com.br/index.PHP而不是www.site.com.br/TITLE-OF-MY-POST“
有谁知道为什么?在这里我的htaccess规则:
Laravel的统治
<IfModule mod_rewrite.c> Options -MultiViews RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.PHP [L] </IfModule>
Boilerplate的规则
<IfModule mod_rewrite.c> RewriteCond %{HTTPS} !=on RewriteCond %{HTTP_HOST} !^www\..+$[NC] RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L] </IfModule>
解决方法
更改规则的顺序:
<IfModule mod_rewrite.c> Options -MultiViews RewriteEngine On RewriteCond %{HTTPS} off RewriteCond %{HTTP_HOST} !^www\. [NC] RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L,NE] RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ index.PHP [L] </IfModule>
通常在您的内部重写规则之前保留301规则.