<a href="www.mysite.com/index.php?information/adminpanel/<?php echo $id;?>" name="approve"
id="approve" ">Approve >></a>
当我重定向到此 url 时,它在 url 中显示正确的 id,但给出页面未找到错误。我是cpanel的新手。请告诉我还有其他方法可以传递此 id 或如何使用 uri 段在 cpanel 中路由页面。
除非您以某种方式更改了文件中的路由.htaccess
否则很可能您缺少 URL 中的部分。
正确的URL很可能是(如果您没有更改任何内容(
www.mysite.com/index.php?route=information/adminpanel&some_id=<?php echo $id ?>
请注意,controller/action
部分应作为变量route
下的查询字符串的一部分发送,并且 ID 变量也必须是查询字符串的一部分,并以您命名的 it 变量,然后从控制器中的$_GET['younameit']
获取。
OpenCart中的路由是通过SEO URL完成
的,例如www.mysite.com/category-slug/sub-category-slug/product-slug
甚至
www.mysite.com/product-slug
当这些被mod_rewrite
规则转化为
www.mysite.com/index.php?_route_=<SEO_URL_PART>
或通过需要指定控制器的非 SEO URL
www.mysite.com/index.php?route=common/home
其中调用CommonHomeController
的默认index()
操作,甚至通过指定要调用的具体操作,如
www.mysite.com/index.php?route=checkout/cart/add
调用CheckoutCartController
的add()
操作的位置。由于这个调用一个 URL 像
www.mysite.com/index.php?route=information/adminpanel/123
将导致尝试在很可能不存在的InformationAdminpanelController
中调用123()
的操作。而不是这个,如果你调用网址
www.mysite.com/index.php?route=information/adminpanel&some_id=123
这将是调用的index()
操作,同时您可以像这样获取some_id
值:
if (!empty($this->request->get['some_id'])) {
$some_id = $this->request->get['some_id'];
} else {
$some_id = 0;
}
if ($some_id) {
// ...
}
同样 - 上述所有内容都是默认的OpenCart路由行为,除非您更改了文件中定义的mod_rewrite
规则.htaccess
否则也将适用于您的安装。