gpt4 book ai didi

codeigniter - 在 Codeigniter 的 index.php 页面中重定向

转载 作者:行者123 更新时间:2023-12-04 03:16:34 24 4
gpt4 key购买 nike

我正在使用 codeigniter 开发一个站点。这是我的 url http://myserver.net/visio/UBwXo。这里 http://myserver.net/visio/ 是我的 base_url。

/visio/之后这里有一个变量。当/visio/之后有任何值时,我想从数据库中获取相应的url到这个值。

这意味着在我的数据库中,

UBwXo => "*任何 url***"

jshom => "*任何 url***"

因此,当在/visio/之后获取值时,我想从数据库中获取相应的 url 并将其重定向到该 url,而不使用 htaccess。

我想在根文件夹的 index.php 页面中完成这个重定向过程。

这可能吗?

http://myserver.net/visio/UBwXo 的原始 url 如 myserver.net/visio/index.php/admin/index/UBwXo

默认 Controller 是admin

最佳答案

首先,在 Controller 文件夹 (application/controllers) 中创建 redirect.php 文件并将此代码添加到此文件中:

if (!defined('BASEPATH'))
exit('No direct script access allowed');

class Redirect extends CI_Controller
{

/**
* Method to redirect from an alias to a full URL
*/
public function index()
{

$alias = $this->uri->segment(1);

$this->db->select('url');

$query = $this->db->get_where('links', array('alias' => $alias), 1, 0);

if ($query->num_rows() > 0)
{
foreach ($query->result() as $row)
{
$this->load->helper('url');

redirect($row->url, 'refresh', 301);
}
}
else
{
echo "Sorry, alias '$alias' not found";
}
}

}

然后在您的数据库中创建表。你的表必须是这样的:

CREATE TABLE IF NOT EXISTS `links` (
`id` int(11) unsigned NOT NULL AUTO_INCREMENT,
`alias` varchar(6) CHARACTER SET utf8 DEFAULT NULL,
`url` text CHARACTER SET utf8,
PRIMARY KEY (`id`),
UNIQUE KEY `alias` (`alias`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=11 ;

之后,将默认 Controller 值设置为重定向类。打开 application/config/routes.php。找到 $route['default_controller'] ,然后将 redirect 设置为该变量的值,如下所示:

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

然后享受生活;)

编辑:

我忘记在 config/routes.php 中提及用于重定向的 URI 路由:

$route[':any'] = "redirect/index/$1";

关于codeigniter - 在 Codeigniter 的 index.php 页面中重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8753322/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com