modIrewrite用于codeIgniter

时间:2011-07-20 01:57:20

标签: codeigniter

互联网和网络开发史上是否有人能够使用codeIgniter中的mod_rewrite摆脱“index.php”。

我已经尝试了好几天了,似乎没什么用。

5 个答案:

答案 0 :(得分:7)

我正在使用这个(在.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?/$1 [L]
</IfModule>

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

不知道我在哪里得到它但它适用于我的codeigniter安装,本地和现场。不要忘记在配置文件中设置$config['index_page'] = '';

答案 1 :(得分:3)

对于mod_rewrite,请在.htaccess文件中使用以下内容

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

如果您的codeigniter实例在子目录中运行,那么在RewriteRule之前使用rewrite base命令

RewriteBase /subdirectory/

然后设置

$config['index_page'] = '';

在配置文件中。

答案 2 :(得分:1)

您的.htaccess文件可能位于错误的位置。 CodeIgniter在应用程序文件夹中放置了一个默认的.htaccess,我错误地将其用于我应该编辑的文件夹。

您实际上需要在根文件夹下创建一个新的.htaccess。所以不是code_igniter / applications / .htacces ......而是code_igniter / .htaccess

希望这有帮助。

答案 3 :(得分:0)

是的,我使用here中的说明在Linux下配置了它。但是,我是通过httpd.conf配置而不是使用.htaccess

答案 4 :(得分:0)

我使用了上面提供的设置并且它们始终有效 - 除非我没有启用mod_rewrite。

如果遇到问题,请检查以确保启用了mod_rewrite。如果不这样做,那么你将什么放入.htacess或你的Apache配置