Kasra
Kasra

Reputation: 81

301 redirection through .htaccess file not working

I'm using CodeIgniter. in httacess file, I wrote this code to remove index.php from url:

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

Now I want to redirect site root to subdomain, with this code:

rewritecond %{http_host} ^domain.com [nc]
rewriterule ^(.*)$ sub.domain.com/$1 [r=301,nc]

domain.com redirected to sub.domain.com successfully. but domain.com/dir to sub.domain.com/dir not work and still opening domain.com/dir. When I removed first code, redirection worked perfect, but I need to remove index.php too.

Upvotes: 0

Views: 98

Answers (2)

anubhava
anubhava

Reputation: 786271

Have your rules like this:

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]

Upvotes: 0

Howli
Howli

Reputation: 12469

Adding $to the end of rewritecond %{http_host} ^domain.com [nc] should fix it for you.

rewritecond %{http_host} ^domain.com [nc]
rewriterule ^(.*)$ sub.domain.com/$1 [r=301,nc]

Would become

rewritecond %{http_host} ^domain.com$ [nc]
rewriterule ^(.*)$ sub.domain.com/$1 [r=301,nc]

Upvotes: 0

Related Questions