删除codeigniter的index.php

时间:2012-11-10 22:14:50

标签: apache codeigniter centos

是的,另外一个。我已经尝试了一切我在搜索中找不到运气的东西。

在我的httpd.conf中(运行centos和apache2):

<VirtualHost *:80>
ServerName www.domain.com
ServerAlias domain.com *.domain.com
DocumentRoot /var/www/html/domain.com
</VirtualHost>

在/var/www/html/domain.com中的htaccess中:

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

似乎没有任何效果。

我尝试过添加

RewriteBase /

我已尝试将最后一行切换为:

RewriteRule ^(.*)$ /index.php/$1 [L]

3 个答案:

答案 0 :(得分:4)

您需要确保在虚拟主机中拥有:

    <Directory "/path...to directory">
        Order allow,deny
        Allow from all
        Allowoverride all
    </Directory>

    <IfModule mod_rewrite.c>
        RewriteEngine on
    </IfModule>

答案 1 :(得分:0)

原始帖子(以及CI用户指南)中的规则可用于在不使用/index.php/的情况下使用网址,但不会从现有网址中删除/index.php/

您可以在CI配置中设置$config['index_page'] = '';(删除index.php),以从CI生成的网址中删除index.php

如果原始规则不起作用,请尝试使用这些重写规则:

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

答案 2 :(得分:0)

两点建议:

1。)确保将.htaccess文件保存/编辑到项目文件夹的根目录中,而不是/ applications文件夹中的.htaccess。这样,如果我的应用程序文件夹位于项目/应用程序,则不要编辑项目/应用程序/ .htaccess文件。您需要将文件放在project / .htaccess

2.。)在.htaccess文件中使用以下内容:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT,L]