我有一个 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>
样板规则
<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 规则。
关于regex - Htaccess 重定向 Laravel 4,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19837257/