gpt4 book ai didi

php - Codeigniter子域路由

转载 作者:行者123 更新时间:2023-12-02 05:16:05 27 4
gpt4 key购买 nike

我正在尝试在 CodeIgniter 框架上运行的网站上设置博客脚本。我想在不对现有网站代码进行任何重大代码更改的情况下执行此操作。我认为创建一个指向另一个 Controller 的子域将是执行此操作的最干净的方法。

我设置新 Blog Controller 所涉及的步骤:

  1. 创建一条指向我的服务器 IP 地址的 A 记录。
  2. 向 CodeIgniter 的 routes.php 文件添加新规则。

这是我的想法:

switch ($_SERVER['HTTP_HOST']) {
case 'blog.notedu.mp':
$route['default_controller'] = "blog";
$route['latest'] = "blog/latest";
break;
default:
$route['default_controller'] = "main";
break;
}

这应该将 blog.notedu.mpblog.notedu.mp/latest 指向我的 blog Controller 。

现在问题来了...

访问 blog.notedu.mpblog.notedu.mp/index.php/blog/latest 工作正常,但是访问 blog.notedu.mp/latest 由于某种原因将我带到 404 页面...

我的 .htaccess 文件如下所示(从 URL 中删除 index.php 的默认设置):

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

我的 Blog Controller 包含以下代码:

class Blog extends CI_Controller {

public function _remap($method){
echo "_remap function called.\n";
echo "The method called was: ".$method;
}

public function index()
{
$this->load->helper('url');
$this->load->helper('../../global/helpers/base');

$this->load->view('blog');
}

public function latest(){
echo "latest working";
}

}

我在这里错过了什么或做错了什么?我几天来一直在寻找这个问题的解决方案:(

最佳答案

经过 4 天的反复试验,我终于解决了这个问题!

事实证明这是一个 .htaccess 问题,以下规则修复了它:

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]

感谢所有阅读或回答此问题的人。

关于php - Codeigniter子域路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21511930/

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