CodeIgniter htaccess mod_rewrite无法正常工作

时间:2012-04-26 23:47:30

标签: php .htaccess codeigniter mod-rewrite

我正在尝试将网址设为 http://127.0.0.1/dev/blog/welcome但是当我输入时,它会将网址更改为http://127.0.0.1/dev/blog/index.php/welcome

但是当我做http://127.0.01/dev/blog//welcome时,由于某种原因,它仍然存在。

我的.htaccess是

RewriteEngine On
RewriteBase /dev/blog
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^(index\.php|images|robots\.txt|css)
RewriteRule ^(.*)$ index.php?/$1 [L]

我的config.php已配置

$config['base_url'] = 'http://127.0.0.1/dev/blog/';
$config['index_page'] = '';

哦,我确实检查了mod_rewrite是否打开,我正在使用WAMP

另一个信息:我正在使用Firefox,但是当我使用IE(9)时,它不会更改网址 http://127.0.0.1/dev/blog/welcomehttp://127.0.0.1/dev/blog/index.php/welcome

3 个答案:

答案 0 :(得分:3)

对于RewriteRule,添加NC和QSA标志。 QSA确保追加查询字符串。除非你计划在CodeIgniter上管理你的css文件,图像和robots.txt,否则也要排除倒数第二行。

试试这个:

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

另外,请检查config.php中的uri_protocol。我在WAMP没有正确检测到它时遇到了一些问题,并且把它设置为PATH_INFO而不是AUTO时运气最好。

答案 1 :(得分:1)

您是否在apache配置中将AcceptPathInfo设置为ON

答案 2 :(得分:0)

确保您正在编辑webroot目录上的文件而不是应用程序目录上的文件。我试图让这个工作正常,直到我终于认为这是我的问题

,我一直在努力