在cpanel中使用动态URI段重定向URL


<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

调用CheckoutCartControlleradd()操作的位置。由于这个调用一个 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否则也将适用于您的安装。

最新更新