【问题标题】:Extracting GET Parameters in CodeIgniter from the URL从 URL 中提取 CodeIgniter 中的 GET 参数
【发布时间】:2014-03-09 05:19:26
【问题描述】:

URL 映射可以在 .htaccess 中完成,我们可以编辑 routes.php。学习 PHP/Codeigniter,我发布了这个问题。 CodeIgniter Mod Rewrite Rules and the Controller

routes.php 为我工作,接下来我想要访问我的 URL 中的 GET 参数。详细说明我实际上正在尝试做的事情:

案例 1:

RewriteRule ^([a-z]+)/(at)/([a-z]+)$ index.php/person/show?personName=$1&place=$2 [L]

这在上述问题中的 .htaccess 中不起作用,但我可以在 routes.php 中使用它

$route['([a-z]+)/at/([a-z]+)'] = "person/show/$1/$2";

如果我尝试将 routes.php 作为

$route['([a-z]+)/at/([a-z]+)'] = "person/show?personName=$1&place=$2";

我最终得到了 CodeIgniter 404。这从根本上是不正确的吗?

这可以正常工作:

person/show?personName=chinmay&place=kino

案例 2:

我要公开的网址:

chinmay?place=kino

地点显示为 GET 参数。我想处理这个问题,并且对 routes.php 了解很多-

$route['([a-z]+)\?place=([a-z]+)'] = "person/show/$1/$2"

这也给出了 CI 404。

【问题讨论】:

  • 为什么要这么复杂?控制器/方法/param1/param2/param3/paramN 不够吗?或者您可能喜欢 _remap() 函数...在我的应用程序中,为了简单起见,我尝试在 routes.php 中包含尽可能少的条目。当我需要将 url 翻译成本地语言时,我纯粹使用 routes.php。

标签: php apache .htaccess codeigniter mod-rewrite


【解决方案1】:
【解决方案2】:

你可以使用:

<?php

 function myFunction($param1, $param2){
  //code
 }
?>

然后像这样访问它:.../controller/myFunction/param1/param2

【讨论】:

    猜你喜欢
    • 2010-12-10
    • 1970-01-01
    • 2015-05-30
    • 2016-02-14
    • 1970-01-01
    • 1970-01-01
    • 2012-11-19
    • 1970-01-01
    相关资源
    最近更新 更多