我在routes.php文件中指定了一个URI路由,如下所示:
$route['(.+)/schoolid\?'] = 'somepage';
但是,当我输入random/schoolid?
时,它会显示404页面,而不是显示URI路由中指定的“somepage”。 'somepage'确实存在,如果我只是取出\?
,它会在访问random/schoolid
时显示一些页面
我也尝试使用2个反斜杠而不是1个,如\\?
,也不起作用。
我错过了什么?
答案 0 :(得分:2)
尝试围绕parens:
$route['(.+)/schoolid(?)'] = 'somepage';
在本地进行测试,这似乎有效。
这是我的routes.php
:
$route['default_controller'] = "welcome";
$route['404_override'] = '';
$route['(.+)/schoolid(?)'] = 'test2/index';//echo's "test"
.htaccess
:
RewriteEngine on
RewriteBase /ci-214/
RewriteCond $1 !^(index\.php|bootstrap)
RewriteRule ^(.*)$ index.php/$1 [L]
这些网址全部有效(不会产生404 {和test2/index
的回声测试):
http://example/ci-214/safgfgf/schoolid?/123
http://example/ci-214/safgfgf/schoolid?123
http://example/ci-214/sadf/schoolid?123
http://example/ci-214/sadf/schoolid?/
http://example/ci-214/sadf/schoolid?
http://example/ci-214/sadf/schoolid