2

首先,我知道这个问题可能已经被问了 150 万次,所以我用谷歌搜索了它。
我已经阅读并尝试了一堆建议,但问题仍然存在。

这是我们的第一个内部 CI 项目。
使用非标准(在 CI 世界中)目录树创建了一个骨架“项目”,以更好地匹配我们其他现有项目的文件结构。
它是这样的:

../
/www
- index.php
/application
- /config
- /controllers
- /...etc
- /lib
- - /vendor
- - - /codeIgniter
- - - - /2-1-2
- - - - - /system
- - - - - - /...等
- /library
- /views
- /...等

我将它复制到我的机器(WAMP)并测试了几个控制器。
一切似乎都很好。唯一的问题是 url 中仍然需要index.php 。
我希望能够使用http://localhost/project/controller/method,而不是需要http://localhost/project/ index.php /controller/method

我确认我的 http.conf 有AllowOverrride Allwamp /www,并且我在/www.htaccess目录中添加了一个文件......无济于事:(

### \www\.htaccess ### 
# After many tries, I reverted to these simple 4 lines and stopped here

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L] 

我有这个项目的别名

### \wamp\alias\bomProject.conf ###

Alias /bomProject/ "c:/wamp/NetBeansProjects/bomProject/www/" 

<Directory "c:/wamp/NetBeansProjects/bomProject/www/">
    Options Indexes FollowSymLinks MultiViews
    AllowOverride all
        Order allow,deny
    Allow from all
</Directory>

这个别名允许我成功浏览http://localhost/bomproject上的项目。
我已经$config['index_page']在我的/config/config.php中设置为''

我也尝试过在 config.php 中更改$config['base_url'] = ''
……$config['base_url'] = 'http://localhost/bomProject/'没有奏效。


我的怀疑是问题归结为我们的目录树,但我对 htaccess和正则表达式太缺乏经验,不知道如何解决它。

[编辑]:
@chris-clower 向我介绍了config/routes.php,所以我稍微阅读了一下。
很高兴知道!我非常感激,我喜欢和他们一起玩......只是,根据文档(至少我是如何理解的),我不认为路线是我问题的解决方案。
当尝试“ localhost/bomProject/{controller} ”...其中{controller}显然是一个真正的控制器名称...我仍然收到这个 404 错误:“未找到 - 请求的 URL /wamp/NetBeansProjects/BomProject/www在此服务器上找不到 /index.php/{controller}。 "
[/EDIT]:

任何帮助将不胜感激。

4

1 回答 1

0

您需要查看/application/config/routes.php并在那里添加您的路线,类似于:

$route['default_controller'] = 'index';
$route['admin'] = 'admin/index/';
$route['admin/(:any)'] = 'admin/$1';
$route['forum'] = 'forum/index/';
$route['(:any)'] = 'index';
$route['404_override'] = '';

至于您的.htaccess,它看起来不错,不需要对此进行任何更改。

于 2012-08-10T00:06:42.590 回答