当有重写规则时如何使用htaccess重定向

时间:2013-12-11 09:44:25

标签: regex apache .htaccess mod-rewrite http-status-code-301

我遇到了以下问题:
我需要从/index.php重定向(301)到主页,但有重写规则:

RewriteCond %{REQUEST_URI} (/|\.htm|\.php|\.html|/[^.]*)$  [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php

当我添加行时,有一个重定向循环:

Redirect 301 /index.php http://example.com/

如何在不更改重写规则的情况下执行此操作? .htaccess对我来说不够清楚

1 个答案:

答案 0 :(得分:0)

你的规则如下:

RewriteCond %{THE_REQUEST} /index\.php [NC]
RewriteRule ^(.*?)index\.php$ /$1 [L,R=301,NC,NE]

RewriteCond %{REQUEST_URI} (\.html?|\.php|/[^.]*)$  [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [L]