【发布时间】:2013-01-24 20:58:24
【问题描述】:
我以前从未使用过 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 - removing index.php
Codeigniter - how to remove the index.php from url?
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
访问关于页面我已经将$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' 目录?
【问题讨论】:
-
移除“RewriteBase”
-
刚刚尝试过...仍然出现内部服务器错误
-
取消注释重写模块后是否重新启动了网络服务器?
-
htaccess更改后不需要重启...
-
模块激活后必须重启。
标签: php .htaccess codeigniter