我正在制作一个基于 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]
感谢您的解决方案: