我以前从未使用过 CodeIgniter,更不用说任何 php 框架了,我想我会尝试一下。一切都很好,除了我似乎无法从 URL 中删除 index.php 并仍然访问我的页面。
我从来没有使用过 MVC 结构,所以我边走边学,如果我做错了,请原谅我。
我试图通过简单地输入localhost/ci/about来访问我创建的名为“about_page.php”的视图,但目前我只能使用localhost/ci/index.php/about来访问它
页面的控制器是:/application/controllers/about.php
页面
的模型是:/application/models/about_model.php
页面
的视图是:/application/views/about_page.php
我一直在寻找解决此问题的方法,但一直找不到。这是我已经搜索过的地方:
CodeIgniter - 删除 index.php
Codeigniter - 如何从 url 中删除 index.php?
http://www.farinspace.com/codeigniter-htaccess-file/
CodeIgniter 在“应用程序”文件夹中带有一个 .htaccess 文件,其中仅包含Allow Deny From All
. 所以我在根目录中创建了一个新的 .htaccess 文件,http://localhost/ci/.htaccess
并将这段代码添加到其中:
RewriteEngine On
RewriteBase /ci
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
当 .htaccess 文件位于根目录中时,我收到 500 内部服务器错误。当我将完全相同的文件复制到应用程序文件夹中时,500 错误消失了,但我仍然无法使用localhost/ci/about访问 about 页面
我已经更改$config['index_page'] = 'index.php';
为$config['index_page'] = '';
并且我尝试更改$config['uri_protocol'] = 'AUTO';
为$config['uri_protocol'] = 'REQUEST_URI';
但我仍然收到内部服务器错误。
我进入了 httpd.conf 文件并取消了 mod_rewrite.so 模块的注释,所以我知道 mod_rewrite 处于活动状态。
有谁知道为什么这不起作用或我如何才能完成这项工作?我知道 StackOverflow 上有很多关于这个主题的问题,但我找不到能回答我问题的问题。
我这样做对吗?我是否应该能够通过访问localhost/ci/about来访问 about 页面,还是必须在“application”目录中创建一个“about”目录?