今天在学习CI框架的时候,下了一个开源的项目,想进后台看看,结果怎么都进不了,
整了一晚,总算是整出来了:
问题出在这里:
RewriteRule ^(.*)$ /index.php/$1 [L]
如果你的项目不在根目录请把上面这一句改为:
RewriteRule ^(.*)$ index.php/$1 [L]
原因就是/index.php是服务器根目录下的index.php
在.htacess里加上这一句就好了:
RewriteRule ^(.*)$ index.php/$1
让我们来看看这句话是什么意思:
^(.*)
这是一个正则,匹配所有的网页格式,访问这个将会跳转到index.php/
1
也就是说如果你要访问
http://localhost/project/admin
那么要输入的就是
http://localhost/project/index.php/admin
想学习好.htacess就要学习apache的url重定向。。。有空再学吧。。
,htacess的例子:
#打开引擎
RewriteEngine on
# !-d如果访问的路径不是文件,执行下面的Rule,否则返回文件路径
RewriteCond %{REQUEST_FILENAME} !-f
# !-d如果访问的路径不是文件夹,执行下面的Rule,否则返回文件夹路径
# %{REQUEST_FILENAME}请求的文件名
RewriteCond %{REQUEST_FILENAME} !-d
#配置url重写规则,!^(index\.php|images|robots\.txt) 这个正则表达式指明了哪些文件不需要重写,而是直接访问;
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ index.php/$1
RewriteRule ^(application|modules|plugins|system|themes) index.php/$1 [L]