使用Codeigniter使用htaccess进行自动重定向

时间:2013-11-14 16:16:27

标签: php apache .htaccess codeigniter redirect

我正在建立一个基于codeigniter的网站,但我遇到了问题。

我使用这个htaccess的漂亮网址:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?/$1 [L]

一切正常,但现在我想重定向所有网址: - site.com/reg - site.com/faq - 等 至: - site.com/it/reg - site.com/it/faq - 等等。

我尝试了很多次这样做,但是只看到一个结果只使用environment_status作为重写,但它只将site.com重定向到site.com/it而不重定向网站,如site.com/reg等。

如果没有environment_status作为重写,我总是得到一个无限重定向循环。 任何解决方案?

编辑: 适用于

RewriteRule ^(reg|faq)/?$ /it/$1 [L,NC,R]

但是有没有办法在每个request_uri之前放/ it /而不使用像上面那样的“白名单”而没有重定向循环? (我尝试过。*但是有循环)?

解决:

RewriteRule !^(it|index\.php) /it%{REQUEST_URI} [L,R]

感谢解决方案:

1 个答案:

答案 0 :(得分:1)

你的规则如下:

RewriteEngine on

RewriteRule !^(it|index\.php) /it%{REQUEST_URI} [L,R]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ /index.php?/$1 [L]