【问题标题】:Redirect the URL to another, in codeigniter在 codeigniter 中将 URL 重定向到另一个
【发布时间】:2016-01-05 05:24:35
【问题描述】:

我有一个使用核心 php 构建的网页,现在它已更新为 codeigniter mvc。我面临的问题是,用户正在尝试输入旧的 URL 路径

示例:www.website_name/old_path

现在由于 mvc 布局,它不会工作,会得到 404 错误。我想将输入 www.website_name/old_path 的客户重定向到新客户

www.website_name/index.php/new_controller/new_view.

请任何人帮助我解决此问题。

谢谢!

【问题讨论】:

  • 你知道codeigniter中的路由吗?
  • 不多,请解释一下如何实现这个

标签: php .htaccess codeigniter url-redirection


【解决方案1】:

首先删除index.php 配置文件。 打开config.php 并进行以下替换

$config['index_page'] = "index.php"

$config['index_page'] = ""

然后在 application/ 文件夹中创建 HTACCESS 文件

有这个代码....

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L] 
</IfModule>

现在 index.php 已从您的 URl 中删除....

步骤 2) 打开 application/config/routes.php 文件 现在在这里定义您想要的网址

$route['mycontroller/(:any)'] = "mycontroller/user_detail/$1";

所以,您的网址将是 .. www.website_name/new_controller(或 xyz)/

在这里,您还可以使用路由以不同的方式更改控制器名称所以没有人可以得到控制器/方法名称的确切名称....要进行此类自定义,请参考此 URL http://www.codeigniter.com/user_guide/general/urls.html

【讨论】:

  • 当前和旧的 Codeigniter 文档现在位于此处codeigniter.com/docs
  • 当我将.htaccess 放在root/ 中时它可以工作,当放在application/ 文件夹中时它没有工作
  • @vikram 不要在应用程序中创建文件夹我只是想说进入应用程序/并创建 htaccess 文件
【解决方案2】:

正如 Sumit 所说,您应该为此使用 URL 路由。

在路由文件中,您可以创建一个您想要的所有重定向列表,如下所示:

$route['old_path'] = "new_controller/new_view";

【讨论】:

    【解决方案3】:

    您可以对此类问题使用 301 重定向。

    将此代码放在.htaccess中

    RewriteRule ^www.website_name/old_path www.website_name/index.php/new_controller/new_view [L,R=301]
    

    或者使用codigniter http://www.codeigniter.com/user_guide/helpers/url_helper.html的301重定向

    // with 301 redirect
    redirect('/article/13', 'location', 301);
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-16
    • 2016-01-10
    • 1970-01-01
    • 2013-05-28
    • 1970-01-01
    • 2020-09-05
    • 2016-05-24
    相关资源
    最近更新 更多