Rewrite模块运用

首先这个是在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

你可能感兴趣的:(html,PHP,百度,Google,Zend)