.htaccess(删除index.php)不按用户指南中的说明工作

时间:2013-11-28 09:36:14

标签: php apache .htaccess codeigniter mod-rewrite

我从现在开始一周后开始学习codeigniter,我相对较新,仍然通过mvc模式和Codeigniter找到我的方法

我面临的问题很奇怪,我不知道我在做什么导致这样的流程 我正在关注这个教程http://ellislab.com/codeigniter/user-guide/general/urls.html 并且试图从我的网站中删除index.php,即localhost / Example.com / index.php

问题是我将 .htaccess 文件放在 webroot 这是我的 Example.com文件夹我只是复制粘贴在下面来自用户指南的代码并将其设为我的.htaccess

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

我也从配置文件中删除了index.php

所以现在每当我尝试访问localhost / example.com时,它都会将我抛回localhost目录

我不知道造成这种流动的原因

任何人都可以帮助我,谢谢我真的想知道发生了什么以及我做错了什么

我正在使用Wamp

3 个答案:

答案 0 :(得分:1)

你的规则如下:

RewriteEngine on

# remove index.php (external redirect)
# if /index.php is part of original request to web server
RewriteCond %{THE_REQUEST} /index\.php [NC]
# grab text before index.php in $1 and do an external redirect to $1
RewriteRule ^(.*?)index\.php$ $1 [L,R=302,NC,NE]

# internal rewrite for CI front controller
# if request is not for a file
RewriteCond %{REQUEST_FILENAME} !-f
# if request is not for a directory
RewriteCond %{REQUEST_FILENAME} !-d
# if request is not for one of these listed files
RewriteCond $1 !^(index\.php|images|robots\.txt)
# internally rewrite to index.php/<request-uri>
RewriteRule ^(.*)$ index.php/$1 [L]
  • THE_REQUEST变量表示Apache从您的浏览器收到的原始请求

参考:Apache mod_rewrite Introduction

答案 1 :(得分:0)

尝试在RewriteBase /example.com文件的顶部添加.htaccess

答案 2 :(得分:0)

您是否在Apache中打开了rewrite_module?