【发布时间】: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