With this rewrite rule RewriteRule ^(.*)$ /index.php?/$1, here are some examples of rewrites that occur:
http://www.mysite.com=>
http://www.mysite.com/index.php?/(in fact, this cannot be rewritten at all)
http://www.mysite.com/mycontroller/mymethod/?ref=p&t2=455 =>
http://www.mysite.com/index.php?/mycontroller/mymethod/?ref=p&t2=455
http://www.mysite.com/?ref=p&ts=455 =>
http://www.mysite.com/index.php?/?ref=p&t2=455
The first will work whether it will be rewritten or not. CodeIgniter processes either an empty query string (which is easy) or a query string simply "/".
( ) , CodeIgniter , /mycontroller/mymethod/?ref=p&t2=455. CI
[0] => mycontroller
[1] => mymethod
[2] => ?ref=p&t2=455
2 , .
( , , CodeIgniter . : /?ref=p&t2=455. , :
[0] => ?ref=p&t2=455
.
, , RewriteRule
RewriteRule ^(.*)$ /index.php?/$1 to
RewriteRule ^(.*)$ /index.php/$1
, , uri_protocol PATH_INFO.