首页 > 网站 > Apache > 正文

13个实用的Apache Rewrite重写规则

2024-08-27 18:27:48
字体:
来源:转载
供稿:网友

1.去掉域名中的www标记
代码如下:RewriteCond %{HTTP_HOST} !^jb51/.net$ [NC]
RewriteRule .? http://Vevb.com%{REQUEST_URI} [R=301,L]
2.去掉www标记,但是保存子域名
代码如下:RewriteCond %{HTTP_HOST} ^www/.(([a-z0-9_]+/.)?jb51/.net)$ [NC]
RewriteRule .? http://%1%{REQUEST_URI} [R=301,L]
这里,当匹配到1%变量以后,子域名才会在%2(内部原子)中抓取到,而我们需要的正是这个%1变量。
3.给子域名加www标记
代码如下:RewriteCond %{HTTP_HOST} ^([a-z.]+)?jb51/.net$ [NC]
RewriteCond %{HTTP_HOST} !^www/. [NC]
RewriteRule .? http://www.%1Vevb.com%{REQUEST_URI} [R=301,L]
这个规则抓取二级域名的%1变量,如果不是以www开始,那么就加www,以前的域名以及{REQUEST_URI}会跟在其后。
4.防止图片盗链
一些站长不择手段的将你的图片盗链在他们网站上,耗费你的带宽。你可以加一下代码阻止这种行为。
代码如下:RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www/.)?jb51/.net/ [NC]
RewriteRule /.(gif|jpg|png)$ – [F]
如果{HTTP_REFERER}值不为空,或者不是来自你自己的域名,这个规则用[F]FLAG阻止以gif|jpg|png 结尾的URL
如果对这种盗链你是坚决鄙视的,你还可以改变图片,让访问盗链网站的用户知道该网站正在盗用你的图片。
代码如下:RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www/.)?jb51/.net/.*$ [NC]
RewriteRule /.(gif|jpg|png)$ 你的图片地址 [R=301,L]
除了阻止图片盗链链接,以上规则将其盗链的图片全部替换成了你设置的图片。
你还可以阻止特定域名盗链你的图片:
代码如下:RewriteCond %{HTTP_REFERER} !^http://(www/.)?leech_site/.net/ [NC]
RewriteRule /.(gif|jpg|png)$ – [F,L]
这个规则将阻止域名黑名单上所有的图片链接请求。
当然以上这些规则都是以{HTTP_REFERER}获取域名为基础的,如果你想改用成IP地址,用{REMOTE_ADDR}就可以了。
5.如果文件不存在重定向到404页面
如果你的主机没有提供404页面重定向服务,那么我们自己创建。
代码如下:RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .? /404.php [L]
这里-f匹配的是存在的文件名,-d匹配的存在的路径名。这段代码在进行404重定向之前,会判断你的文件名以及路径名是否存在。你还可以在404页面上加一个?url=$1参数:
代码如下:RewriteRule ^/?(.*)$ /404.php?url=$1 [L]
这样,你的404页面就可以做一些其他的事情,例如默认信心,发一个邮件提醒,加一个搜索,等等。
6.重命名目录
如果你想在网站上重命名目录,试试这个:
代码如下:RewriteRule ^/?old_directory/([a-z/.]+)$ new_directory/$1 [R=301,L]
在规则里我添加了一个“.”(注意不是代表得所有字符,前面有转义符)来匹配文件的后缀名。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表