regex - Htaccess 重定向 Laravel 4

标签 regex .htaccess mod-rewrite redirect laravel-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>

最佳答案

更改规则的顺序:

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

相关文章:

java - 德国电话号码格式的正则表达式

python - scrapy 正则表达式也返回不匹配的 url

javascript - .htaccess 文件扩展名移除器代码破坏网站表单

php - 在 php 中使用 .htaccess 重写 url

apache - 在 apache 配置中创建变量

java - 匹配完整文件正则表达式中的 A 部分,但不匹配 B 部分

java - 选择没有子字符串的行

PHP 获取 URL 作为变量

regex - 带和不带斜杠

带有 url 屏蔽的 Apache 通配符子域