【问题标题】:Redirecting wrong URL to specif URL codeigniter将错误的 URL 重定向到特定的 URL codeigniter
【发布时间】:2016-12-16 23:50:17
【问题描述】:

这是我当前的文件夹结构:

说明:

  • 我的 base_url 是:localhost/shoppingCart
  • 我的默认控制器是Welcome

我将我的项目分为两部分:前端和后端。

对于后端,我的标准控制器是“admin/home”(admin 是文件夹,home 是控制器的名称)

对于前端,我的标准控制器是“欢迎”(欢迎是控制器的名称)

问题:

当我输入localhost/ShoppingCart/admin 时,它将“欢迎”控制器,但 url 保持不变。我认为我应该抛出一些错误。

当我输入localhost/ShoppingCart/admin/home 时,它工作正常。

我尝试使用路由将localhost/ShoppingCart/admin 重定向到localhost/ShoppingCart

$route['/admin'] = "welcome";

【问题讨论】:

  • 欢迎来到 Stack Overflow!我对格式进行了一些改进,并使其更易于阅读。查看editing help guide 了解更多示例。

标签: php .htaccess codeigniter


【解决方案1】:

APPPATH.'controllers' 目录中的每个子目录都应具有与APPPATH.'route.php' 中的默认控制器名称相同的控制器。如果您将管理模块 Home.php 重命名为 Welcome.php(内部也是类),您将解决此问题。这是因为,当路由器没有找到第一个 uri 段的Admin.php 文件时,它会寻找admin 目录。当找到它时,如果 url 中没有下一段,路由器将寻找在config.php 文件中设置的默认控制器方法。在每个子目录以及controllers 目录中为主页或欢迎页面设置统一名称很容易解决。

【讨论】:

    【解决方案2】:

    我猜你的问题出在路线上。

    另外我建议您使用来自控制器 Naming convention Wikipedia 的“好”名称

    “欢迎”和“家”不像后端和前端那样是两个不同的东西。

    现在关于代码

    我假设您的 routes.php 文件包含类似

    $route['default_controller'] = "welcome";
    

    现在,对于控制器文件夹中的每个子文件夹,您必须在 routes.php 中设置默认控制器,$route['default_controller'] 在子文件夹中不起作用。

    对你来说,会是这样的

    $route['admin'] = 'admin/home'
    

    注意,请记住仅设置您要使用的名称,关于符号/ 框架将管理它们。

    网址中的http://localhost/ShoppingCart/admin

    【讨论】:

    • 感谢有关命名约定的建议。如果我使用“$route['admin'] = 'admin/home'”,它将重定向到我不想要的后端主页。我希望“localhost/ShoppingCart/admin”重定向到我的主域,即“localhost/ShoppingCart”
    • 我看不出有一个私人区域并且不访问它,但如果你这样做 $route['admin'] = "welcome" 没有/ 符号应该可以工作。
    【解决方案3】:

    要将子文件夹重定向到您的主域,您必须执行以下操作:

    #Redirect a sub folder to root
    Redirect 301 /subfolder /
    

    你的情况是:

    redirect 301 /admin /
    

    【讨论】:

    • 感谢解决方案..我必须放入 routes.php 吗?上面你提到的语法是什么。
    • 不,这在您的 .htaccess 文件中。这是一些Common .htaccess Rules
    • 它不工作.. 我把“重定向 301 /admin localhost/ShoppingCart”放到 htaccess 中。 .
    • 问题是当我应该输入“localhost/shoppingcart/admin”时它应该说找不到页面或重定向到主页。但它正在使用相同的 URL 加载我的主页,即“localhost/shoppingcart”..
    猜你喜欢
    • 2012-09-27
    • 2018-05-09
    • 1970-01-01
    • 2020-06-14
    • 2018-02-15
    • 2015-09-14
    • 2017-02-20
    • 1970-01-01
    • 2018-03-21
    相关资源
    最近更新 更多