2011-02-28 143 views
0

我正在使用Codeigniter-。 我的域名目前不会重定向到www版本。非WWW到使用htaccess的WWW重定向文件

例如,如果我输入mydomain.com那么它保持mydomain.com。我想将它重定向到www.mydomain.com

如果有人类型mydomain.com/controller/method那么它应该是www.mydomain.com/controller/method

另一个问题:我已经尝试了其他解决方案,但问题是当它重定向到www版本时,它会自动在URL中添加“index.php”。但是,当我在域名中输入www,那么它工作正常,在URL中没有“index.php”。此问题仅在重定向期间发生。

这里是我的.htaccess文件(我已经删除了重定向代码)

RewriteCond $1 !^(index\.php|system|rpc_relay.html|canvas.html|robots\.txt) 
RewriteCond $1 !^(sitemap\.xml|export) 
RewriteRule ^(.*)$ /index.php/$1 [L] 

任何帮助将不胜感激。

+0

请提供完整的'.htaccess'文件,这样你会得到一个完整的'.htaccess'文件回答你只需要复制/粘贴**')'** – 2012-03-23 08:52:55

回答

0

我用下面前:

<IfModule mod_rewrite.c> 
    RewriteCond %{HTTPS} !=on 
    RewriteCond %{HTTP_HOST} !^www\..+$ [NC] 
    RewriteCond %{HTTP_HOST} (.+)$ [NC] 
    RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L] 
</IfModule> 
+0

谢谢,但具有同样的问题当我输入“mydomain.com”时,我需要“www.mydomain.com/index.php”。我其实想摆脱“index.php”。在我的配置文件中,我们已经将它设置为$ config ['index_page'] =“”; – Tuhin 2011-02-28 07:41:36

+0

现在工作正常。谢谢!! – Tuhin 2011-03-01 05:04:52

0

重定向到domain.comwww.domain.com,您可以使用以下重写规则。请用您自己的域名替换domain.com

RewriteCond %{HTTP_HOST} !^www.domain.com$ [NC] 
RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301] 
+0

重定向完美的工作,但问题是它在域中添加“index.php”。当我输入“mydomain.com”时,我需要输入“www.mydomain.com/index.php”。我其实想摆脱“index.php”。在我的配置文件中,我们已经将它设置为$ config ['index_page'] =“”; – Tuhin 2011-02-28 07:37:57

+0

现在工作正常。实际上,我把它放在了错误的一行,为什么“index.php”又出现了。谢谢!! – Tuhin 2011-03-01 05:04:18

+0

@Tuhin请提及您如何解决问题。这对很多人会有帮助。 – Bee 2012-02-09 21:05:48

2

重定向从http://http://www。 ,并删除在URL路径文件(index.php),把这些线在你的htaccess:

RewriteEngine on 
RewriteCond %{HTTP_HOST} !^www.domain.com$ [NC] 
RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301] 
RewriteCond $1 !^(index\.php|images|css|js|styles|robots\.txt) 
RewriteRule ^(.*)$ /index.php/$1 [L] 

域是:

domain.com 

文件夹直接访问:

images|css|js|styles 

希望这能帮到

+0

1+太好了!它可以帮助我:) – 2013-01-28 20:49:29

+0

嗨..我使用这个时遇到了一些问题..我在主域名上重定向时,我把子域名URL而不是www。例如:当我使用http://m.domain.com比在主要http://www.domain.com上重定向。为什么发生这种情况?你有什么主意吗?请帮帮我。 – 2013-04-20 21:21:00

+0

@SandeepTawaniya,纠正我,如果我错了,但正如我解释上述代码,它将只能添加www,如果没有它的域被访问。也就是说,其他子域名将不会与上述.htaccess规则一起使用。 – entiendoNull 2014-06-23 15:30:47

0

我不知道为什么会有这么复杂的RewriteRules答案,虽然Gobhi提供了一个很好的通用解决方案(=无论域名是什么,它的工作原理)。 这是我的解决方案。

<IfModule mod_rewrite.c> 
    RewriteCond %{HTTP_HOST} ^mydomain\.com$ [NC] 
    RewriteRule ^(.*)$ http://www.mydomain.com/$1 [R=301,L] 

    RewriteRule (.*)/index\.php$ $1/ [QSA] 
</IfModule>