我在codeIgniter中安装了一个名为bit_auth的身份验证模块。 我有一个名为“bit_auth”的模块的控制器,所以在我的控制器上调用函数时,我的网址将是这样的:
http://(mydomain.com)/bit_auth/
http://(mydomain.com)/bit_auth/edit_user/1
http://(mydomain.com)/bit_auth/activate/7b60a33408a9611d78ade9b3fba6efd4fa9eb0a9
现在我希望将bit_auth
控制器路由到http://(mydomain.com)/auth/...
。
我在“config/routes.php
”中定义了这些路线:
$route['auth/(:any)'] = "bit_auth/$1";
$route['auth'] = "bit_auth";
我使用时工作正常:http://(mydomain.com)/auth/
但 在打开以下链接时显示404页面未找到错误:
http://(mydomain.com)/auth/edit_user/1
http://(mydomain.com)/auth/activate/7b60a33408a9611d78ade9b3fba6efd4fa9eb0a9
我做错了什么?
答案 0 :(得分:4)
因为你使用的路径比路线更多,所以你必须这样做:
Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.Click
''Key 7
keybd_event(Keys.D7, 0, KEYEVENTF_KEYDOWN, 0)
keybd_event(Keys.D7, 0, KEYEVENTF_KEYUP, 0)
希望这有帮助!
答案 1 :(得分:1)
在谷歌搜索和调查之后我看到他们在CodeIgniter中使用另一种语法进行路由的地方直接使用 regular expression 而不是使用codeigniter描述的模式如< em> (:any)
或 (:num)
的帮助。我刚刚在(:any)
中将 (.+)
替换为 config/routes.php
,现在它已经完美无缺。
$route['auth/(.+)'] = "bit_auth/$1";
$route['auth'] = "bit_auth";
因为在CodeIgniter中(:any)
和(:num)
不包括/
,并且它们是([^\/]+)
和{{1}的正则表达式模式的别名因此,如果您想匹配包含任意数量(\d+)
的链接的其余部分,您可以使用其模式中包含/
的手动正则表达式模式(.+)
,并将触发所有其余的的URL。