4

我有一个 Laravel 4 安装,我使用样板的 htaccess 来重定向我的网站:

site.com.brwww.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>
4

1 回答 1

5

更改规则的顺序:

<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 规则。

于 2013-11-07T15:17:51.550 回答