互联网和网络开发史上是否有人能够使用codeIgniter中的mod_rewrite摆脱“index.php”。
我已经尝试了好几天了,似乎没什么用。
答案 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配置