使用htaccess删除子目录中的codeigniter index.php

时间:2011-07-20 17:24:37

标签: .htaccess codeigniter subdirectory

我正在尝试从我的CI网址中删除index.php,但是按照说明它似乎没有工作。

我在子目录中运行了codeigniter安装。路由配置中有一个名为main的默认控制器,另一个名为'create'的控制器。默认运行正常,但转到/ create会返回324错误,表示没有收到数据。我的htaccess看起来像这样:

<IfModule mod_rewrite.c>

RewriteEngine On
RewriteBase /

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

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

</IfModule>

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

5 个答案:

答案 0 :(得分:26)

这应该足够了:

<IfModule mod_rewrite.c>
RewriteEngine On

#Checks to see if the user is attempting to access a valid file,
#such as an image or css document, if this isn't true it sends the
#request to index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
#This last condition enables access to the images and css folders, and the robots.txt file
RewriteCond $1 !^(index\.php|public|images|robots\.txt|css)
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>

答案 1 :(得分:8)

这就是我使用的。我的CodeIgniter也在子目录中运行。

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

答案 2 :(得分:6)

.htaccess add:

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

进入application / config / config.php并清除索引页面配置值:

// Old

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

// New

$config['index_page'] = "";

解决了我的问题也希望别人...... :)

答案 3 :(得分:1)

有时您需要启用重写模块,运行“apache2 enable module rewrite”:

sudo a2enmod rewrite

您需要重新启动网络服务器才能应用更改:

sudo service apache2 restart

接下来索菲亚的回答。

答案 4 :(得分:0)

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . index.php [L]

对于Ubuntu