CodeIgniter "Sorgu dizesi" kabul nasıl yapılır

6 Cevap php

CI dokümanlar göre, CodeIgniter örneğin, bir segment-based approach kullanır:

example.com/my/group

Ben belirli bir grup (id = 5) bulmak istiyorsanız, ben ziyaret edebilirsiniz

example.com/my/group/5

Ve denetleyicisi, tanımlamak

function group($id='') {
    ...
    }

Şimdi CI "sorgu dizesi" URL çağrıları geleneksel yaklaşımı, kullanmak istiyorum. Örnek:

example.com/my/group?id=5

Ben doğrudan bu URL'ye giderseniz, ben bir 404 page not found olsun. Peki bunu nasıl etkinleştirebilirsiniz?

6 Cevap

Sorgu dizeleri güvenilir kullanım için ben 3 şeyler yapmak gerekiyor buldum

  1. In application/config/config.php set $config['enable_query_strings'] = true;
  2. Tekrar application/config/config.php set $config['uri_protocol'] = "PATH_INFO";
  3. Kaldırmak için. Htaccess değiştirmek? Yeniden yazma kuralı (varsa)

Ben şu kullanın

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

Bu bazı insanlar yardımcı olabilir; (- Bu tür en PHP OAuth kütüphaneler olarak $ _GET dayanan bir üçüncü taraf lib entegre ediyorsanız örneğin) bir kontrolör-by-denetleyici bazında $ _GET yeniden doldurmak için kontrolörün yapıcı içine koymak.

parse_str(str_replace($_SERVER['QUERY_STRING'],'',$_SERVER['REQUEST_URI']),$_GET);

Hattında application/config.php değiştirin:

$config['enable_query_strings'] = FALSE;

Yerine bu doğru olun. Ayrıca dikkat etmeniz gerekecek diğer ayrıntıları vardır. Bkz here.

Config.php de $config['enable_query_strings'] = TRUE; ayarladıktan sonra, but only if you use 2 or more variables (separated by a "&") in the query string bu gibi sorgu dizeleri ile birlikte segment bazlı yaklaşım kullanabilirsiniz:

example.com/my/group?id=5&var=something

See this answer daha fazla bilgi için.

CodeIgniter isteğe application / config.php etkin olabilir ki, bu özelliği destekler. Eğer yapılandırma dosyayı açarsanız bu öğeleri görürsünüz:

enter code here $config['enable_query_strings'] = FALSE;

$config['controller_trigger'] = 'c'; $config['function_trigger'] = 'm';

TRUE "enable_query_strings" değiştirirseniz bu özellik aktif hale gelecektir.

You may change URI PROTOCOL in your config file to

  $config['uri_protocol']   = "ORIG_PATH_INFO"; 

ve

  $config['enable_query_strings'] = FALSE;

It'll accept query strings veallow your URLs. Worked for me :)