首先这个是在APACHE服务器下运用的,这个模块需要保证rewrite_module开启(开启方法稍后在写)
Rewrite模块运用
第一:保证所有的页面都通过index页面,这个一般在zend等接口的(不准确待查证)URL;
首先在根目录下建一个.htaccess文件然后在文件中写下如下内容
这样所有的访问不到的页面都会跳到index.php页面从而不会报404错的!
页面伪静态
虚拟目录
2,生成伪静态html连接:
(1)生成伪静态html
在<VirtualHost>段最后加入
RewriteEngine on
RewriteRule /goods([0-9]+).html /goods.php?id=$1 [PT]
更标准的写法为:
RewriteRule ^(.*)/goods([0-9]+).html$ $1/goods.php?id=$2 [PT]
更简洁的写法:
/goods(\d+)\.html /goods\.php\?id=$1
第一个(0-9]+)对应参数$1,以此类推第二个对应$2
举例:
RewriteRule /forum-([0-9]+)-([0-9]+)\.html /forumdisplay.php?fid=$1&page=$2 [PT]
测试http://www.xxx.com/goods1.html 是否与/goods.php?id=1的内容相同
最后将所有链接换成设置后的伪静态html地址方式
[PT]:url全局转换,即转换过的goods31.html对应goods.php?id=31 (默认就是这个不加参数)
[R]: url重定向 即使用goods31.html访问时跳转到goods.php?id=31
3,防盗链:
RewriteCrond %{HTTP_HOST} !upkiller.com [R=301,L]
RewriteRule ^(.*)$ http://www.upkiller.com/warning.html [R=301,L]
把不是来自upkiller.com的请求重定向到http://www.upkiller.com
更好的做法:
RewriteCond %{HTTP_REFERER} !^http://(www\.)?upkiller\.com/.*$ [NC]
RewriteRule \.(mp3|rar|jpe|gif)$ http://www.upkiller.com/warning.jpg [R=301,L]
4,防百度爬虫:
RewriteCond %{HTTP_USER_AGENT} ^Baiduspider [OR]
RewriteRule ^(.*)$ http://www.google.com [R=301,L]
把来自百度的爬虫转到goole