htaccess非www。到www重定向并请求重写到index.php

问题描述:

试图2周的htaccess的RewriteRules同时结合:htaccess非www。到www重定向并请求重写到index.php

1)变换所有非www网址到www
2)发送的所有请求的index.php

2个作品具有以下设置生产:

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

但与

RewriteCond %{HTTP_HOST} !^www\. 
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L,NC] 
组合

这些网址的行为与使用www网址时相同,但在与非www网址一起使用时很有趣。

E.g. http://mydomain.com/customername/admin/signin成为
http://www.mydomain.com/index.php/admin/signin?/customername/admin/signin

虽然URL应该仅仅停留不刷新相同,参数“/客户名称/管理/登入”应该传递到index.php ...

如何任何提示我可以做到这一点?我希望mydomain.com后的URL保持不变(因为我的解决方案目前是这样),但添加了www。 URL的前面。

它看起来像你只需要添加HTTP_HOST检查之前全部重写到index.php。

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

这重定向到www 任何URI之前已被重写,以包罗万象的,则:

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

执行包罗万象的,这恰好非www盯着301重定向到www域。

+0

谢谢!作品广告! ;) – Fredu 2012-01-17 21:19:44