【问题标题】:Redirecting URL with dynamic URI segment in cpanel在 cpanel 中使用动态 URI 段重定向 URL
【发布时间】:2014-09-04 07:34:25
【问题描述】:
<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 中路由页面。

【问题讨论】:

  • 尝试将该文件夹的权限更改为 755

标签: php html url opencart cpanel


【解决方案1】:

除非您以某种方式更改了.htaccess 文件中的路由,否则您很可能缺少 URL 中的一部分。

正确的 URL 很可能应该是(如果您没有更改任何内容)

www.mysite.com/index.php?route=information/adminpanel&some_id=<?php echo $id ?>

请注意,controller/action 部分应作为查询字符串的一部分发送到变量 route 下,并且 ID 变量也必须是查询字符串的一部分,您命名它 然后从控制器中的$_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()。如果你调用 URL,而不是这个

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 路由行为,并且也将适用于您的安装,除非您更改了 .htaccess 文件中定义的 mod_rewrite 规则。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-21
    • 1970-01-01
    • 2012-04-22
    • 1970-01-01
    • 1970-01-01
    • 2022-12-10
    • 2014-05-24
    相关资源
    最近更新 更多