首先,我知道这个问题可能已经被问了 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 All
wamp /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]:
任何帮助将不胜感激。