从Codeigniter网站删除index.php

时间:2011-11-10 20:53:09

标签: .htaccess codeigniter

所以,我花了好几个小时。我想不明白。我已经阅读了几个留言板,但还没有工作。

这就是我所做的:

1) 在文件夹“/ www / site_name”中添加了名为“.htaccess”的文件。 此文件包含以下内容:

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

2) 改变

$config['index_page'] = 'index.php';

$config['index_page'] = '';

3) 经历了几个httpd.conf文件,改变了所有可能的行组合:

AllowOverride None

AllowOverride All

4) 启用了rewrite_module

这让我非常生气。我花了几个小时才研究这个。

编辑: 也许我没有为所有人设置正确的AllowOverride。哪一个是正确的?

编辑: 我搞定了。感谢您选择的答案

1 个答案:

答案 0 :(得分:1)

下面是我在codeigniter安装中使用的.htaccess文件。也许你可以尝试一下来试图排除.htaccess文件?如果这样做,那么我们可以添加您的其他规则,如果它们对您的情况真的有必要吗?

<IfModule mod_rewrite.c>
    RewriteEngine On
    #RewriteBase /

    RewriteCond %{REQUEST_URI} ^system.*
    RewriteRule ^(.*)$ /index.php?/$1 [L]

    RewriteCond %{REQUEST_URI} ^application.*
    RewriteRule ^(.*)$ /index.php?/$1 [L]

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?baseurl=$1 [QSA,L]
</IfModule>

<IfModule !mod_rewrite.c>
    ErrorDocument 404 /index.php
</IfModule>

以下行可满足您的要求,即允许/images/等目录和robots.txt等文件。如果文件或文件夹存在,则不会重写。但是,应用程序和系统目录受其他规则保护。

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d