[英]CodeIgniter .htaccess / Mod_rewrite
在過去,我通過為每個控制器創建一個新規則來解決這個問題。 所以我們走吧 默認情況下,網址如下;
http://www.url.com/index.php/controller/method/parameters
我想改變這個;
http://www.url.com/controller/method/parameter1/parameter2/parameter3/etc...
我的問題是參數 - 部分,因為我有時有3或4個參數,但有時沒有或只有一個。
現在我有這個(這不起作用,否則我不會發布):
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
如果我只請求控制器它可以工作(因為存在index()方法),但自定義方法和參數不起作用。
那么,我還需要添加路由到config / routes.php嗎? 在過去,我通過為每個使用的組合添加自定義路由和規則來解決此問題。
我google了幾天,沒有成功。 如果我錯過了帖子,請告訴我。
提前致謝。
您最好的辦法是更改URL結構,這將需要最少量的配置:
使用http://www.url.com/controller/method/param1_key/param1_value/param2_key/param2_value/etc...
結構http://www.url.com/controller/method/param1_key/param1_value/param2_key/param2_value/etc...
然后,您可以使用$this->uri->uri_to_assoc()
來獲取關聯數組中的key =>值對。
請參閱此處的文檔: http : //codeigniter.com/user_guide/libraries/uri.html
RewriteRule ^(.*)$ index.php?$1 [L]
這對我$config['uri_protocol'] = 'REQUEST_URI';
(注意?而不是/),使用$config['uri_protocol'] = 'REQUEST_URI';
在配置文件中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.