我正在尝试在 CodeIgniter 框架上运行的网站上设置博客脚本。我想在不对现有网站代码进行任何重大代码更改的情况下执行此操作。我认为创建一个指向另一个控制器的子域将是最干净的方法。
我设置新Blog
控制器的步骤涉及:
- 创建一个指向我的服务器 IP 地址的 A 记录。
- 将新规则添加到 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.mp
控制器。blog.notedu.mp/latest
blog
现在问题来了……
访问blog.notedu.mp
或blog.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
控制器包含以下代码:
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";
}
}
我在这里错过了什么或做错了什么?几天来我一直在寻找解决这个问题的方法:(