我知道这个主题在这里已经被看到很多次了,但我没有看到他们中的任何一个在这里解决我的问题。。。
我有一个正在使用Codeigniter的应用程序。我试图删除URL中的index.php,但今天我似乎被诅咒了。
以下是我的config.php文件中的内容:
$config['base_url'] = "http://".$_SERVER['SERVER_NAME']."/";
$config['index_page'] = "";
$config['uri_protocol'] = 'AUTO';
下面是我的.htaccess(如CI所建议的):
RewriteEngine on
RewriteCond $1 !^(index'.php|images|robots'.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
有了这个,我无法删除URL中的index.php。事实上,它很好地去除了它,但我在屏幕上有一个漂亮的404。
我检查了phpinfos()
,看看mod_rewrite是否正确激活,这方面没有问题。
**编辑**
我检查了我的apache日志,下面是我所拥有的:
[Wed Jul 18 12:27:08 2012] [error] [client 127.0.0.1] File does not exist: [PATH]/trunk/user
真正的路径应该是:
[PATH]/trunk/application/controllers/user
我看到所有这些东西都是在index.php文件中设置的,但它似乎从未被调用。。。
有人能建议我解决这个问题吗?
谢谢!
试试这个:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
第一个条件确保请求不是针对有效文件的,第二个条件确保它不是针对有效目录的。对文件系统中实际不存在的文件或文件夹的所有请求都通过index.php.
您不能阻止对index.php页面的访问,因为它是CI工作的主页面。