我有一个 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>

最佳答案

更改规则的顺序:

<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/

10-14 09:55