我將我的codeigniter文件從apache遷移到nginx,並查看nginx的重寫。我碰到下面的重寫來去除笨的index.php這個codeigniter nginx重寫的問號是什麼意思?
if (!-e $request_filename)
{
rewrite ^/(.*)$ /index.php?/$1 last;
break;
}
工作重寫。但是,我不明白/index.php?/
部分。
UPDATE:
我試圖重寫不問號,像rewrite ^/(.*)$ /index.php/$1 last;
。它適用於普通的控制器,但是當第三方將值發佈到控制器時會中斷,例如/controller?code=something
等fb oauth。
我的問題
1)什麼是問號在這種重寫的角色?這是否使index.php可選?
2)另外,codeigniter不會路由URL的問號,就像在get請求中一樣。例如,像這樣
http://example.com/controller?code=somecodehere
休息和不調用控制器,而是試圖GET請求來調用字面上controller?code=somecodehere
。這種路由處理,但我只是不明白如何。
有關此重寫的任何見解都將有所幫助。
謝謝。
所以,它是像每個請求像'控制器'它調用'index.php?/控制器',即使沒有get參數在url中? – palerdot
是的,它只是將'/ something?something'重寫爲'/index.php?/ anything%3Fsomething'並在'index.php'中處理。沒有魔術之後 – Adassko
以及如何獲得控制器的請求處理這個重寫?如何處理'/ controller?code = something'? – palerdot