我正在建立一个基于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]
感谢解决方案:
答案 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]