2011-02-28 142 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>