apache配置
今天下午搞了一下(感觉这个搞难听,后面我就用研究了,研究用起来好听,但是我没有彻底研究,只是注重“研究”用重写)apache下的重写,我本来这个很简单,以前没有用,今天用起来还是花了不少时间,我看网上有不少这方面的讲解。我开始也是按网上的讲解来弄,结果怎么也出不来,但是大致知道重写是怎么回事了,但是要的是结果,可是结果出不来,只有一个办法看apache手册。看手册就不多说了,那么就开始进入主题,我们需要重写,那就需要配置服务器。
1.打开httpd.conf文件,首先找到这个文件中的 #LoadModule rewrite_module modules/mod_rewrite.so 带有这行的内容,去掉前面的#(作用启用Rewrite功能)。先不要急着关闭这个文件,还没有玩。
2.假设我的php文件放在d:/wamp/www目录下,接着找到这行<Directory "d:/wamp/www">,往下看AllowOverride None把None改成all就可以了,这样就可以重写了
3.保存文件,接着就是重启apache服务器了,重启开始起作用了。但是这样还不能重写,这个只是让服务器有重写的功能了。
.htaccess文件的编写
这个文件的写起来需要的知道的还不少,我今天下午也就会几个简单的(有待加强)。
RewriteEngine 开启或者关闭重写引擎(要重启就需要 RewriteEngine on)
RewriteCond 定义重写发生的条件(这个的写法就看自己的需要了) ci目录结构如图
RewriteRule 定义重写的规则(假设我有这个需求在我的www服务器下有个ci目录下面,在ci目录下有个index.php文件要去掉index.php可以这样写这个规则RewriteRule ^(.*)$ /ci/index.php/$1 [L])细节请看文档
现在需要的是图片、js、css文件都不重写。js和css文件都放在layer目录下,images放的是图片
我的.htaccess文件写法
RewriteEngine on
RewriteCond $1 !^(index/.php|images|robots/.txt)
RewriteCond $1 !^(.*/.js) //js文件不重写
RewriteCond $1 !^(.*/.css) //css文件不重写
RewriteCond $1 !^(.*/.gif) //gif文件不重写
RewriteCond $1 !^(.*/.png) //png文件不重写
RewriteRule ^(.*)$ /shenzhen/index.php/$1 [L]
第一次写这个文件,还需要对这个文件进行改进,还需要学习一下这个重写。今天就到此为止了,更深层的还需要学习