我正在使用CodeIgniter。 在httacess文件中,我编写了这段代码来从url中删除index.php:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L,QSA]
现在我想将站点根目录重定向到子域,使用以下代码:
rewritecond %{http_host} ^domain.com [nc]
rewriterule ^(.*)$ sub.domain.com/$1 [r=301,nc]
domain.com已成功重定向到sub.domain.com。但domain.com/dir到sub.domain.com/dir不起作用,仍然打开domain.com/dir。 当我删除第一个代码时,重定向工作完美,但我也需要删除index.php。
答案 0 :(得分:0)
将$
添加到rewritecond %{http_host} ^domain.com [nc]
的末尾应该为您解决。
rewritecond %{http_host} ^domain.com [nc]
rewriterule ^(.*)$ sub.domain.com/$1 [r=301,nc]
会变成
rewritecond %{http_host} ^domain.com$ [nc]
rewriterule ^(.*)$ sub.domain.com/$1 [r=301,nc]
答案 1 :(得分:0)
你的规则如下:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^domain\.com$ [NC]
RewriteRule ^(.*)$ http://sub.domain.com/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L,QSA]