这部分看着教程来,步骤很简单,但自己实践很容易出错,一开始还不知道怎么调试
后面想想可以查看apache的error log一看果然是好东西,log里面相当清楚
不过整体过程中发现修改apache的配置需要非常细心 多一个空格可能导致错误
过程如下
1,第一步要开启对应的模块
LoadModule rewrite_module modules/mod_rewrite.so
2, 开启# Virtual hosts
Include conf/extra/httpd-vhosts.conf
这样就能在httpd-vhosts.conf这个文件里面配置虚拟主机了,免得写在apache的conf里面导致比较乱
3,配置httpd-vhosts.conf
<VirtualHost *:80>
#网站的目录,记得先到c盘下面找到hosts文件 加上 127.0.0.1 www.dk.com这一句
DocumentRoot "F:/wamp/www/test/rewrite"
ServerName www.dk.com
<Directory "F:/wamp/www/test/rewrite">
#允许所有,order是顺序,先执行deny的,再执行allow的
Order deny,allow
Allow from all
#网站的欢迎页面,进入此站点,会自动读取index.php这个文件,没有就依次找后面
DirectoryIndex index.php index.php3 index.html index.htm
#设置网站的错误界面404等等 都在这里
ErrorDocument 404 /404.html
ErrorDocument 403 /403.html
#这里本来可以直接写入一些rewrite的规则,但太多了混乱,因此和前面一样
#开启这个可以将rewrite规则写在一个叫做.htaccess的文件里面,且每次修改.htaccess不用重启apache哦
AllowOverride All
</Directory>
</VirtualHost>
4,配置.htaccess
#设置重写的规则
#这个if是说如果开启了重写模块,下面才生效
<IfModule rewrite_module>
RewriteEngine On
#重写规则 http://www.dk.com/show.php?id=3&num=100 show-id3-num100.html
#下面是两个例子,一个是正则 一个直接替换
RewriteRule show-id(d+)-num(d+).html show.php?id=$1&num=$2
#比如这个直接输入hello.html 系统会自动载入hello.php 以达到伪静态的目的哦
RewriteRule hello.php hello.html
#下面是伪静态的另外一个作用,防止图片盗链
#HTTP_REFERER代表访问来源,意思如果访问来源不是本网站的
RewriteCond %{HTTP_REFERER} !www.dk.com
#那么就对图片封杀,前面是正则 代表所有的jpg,后面的-F为forbidden 中间的空格严格遵循,不然会报错,但可以查看log来排错
RewriteRule .*.jpg -[F]
</IfModule>