1

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

我在这个 htaccess 中使用漂亮的 url:

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 作为 rewritecond,但它只将 site.com 重定向到 site.com/it 而没有重定向像 site.com/reg 等 URL。

如果没有 environment_status 作为 rewritecond,我总是会得到一个无限重定向循环。有什么解决办法吗?

编辑:与

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

但是有没有办法在每个 request_uri 之前放置 /it/ 而不使用上面的“白名单”并且没有重定向循环?(我试过 put .* 但有循环)?

解决了:

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

感谢您的解决方案:

4

1 回答 1

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]
于 2013-11-14T16:24:17.013 回答