.htaccess文件的应用非常广泛,最常见的就是WWW或者非WWW的301跳转功能,其实.htaccess文件还可以实现很多实用的功能,比如:防盗链、阻止无用蜘蛛爬取等,只不过我们使用的并不多而已。
第一、域名重定向
(www.域名.com)
- RewriteEngine on
- RewriteCond %{HTTP_HOST} ^baidu\.com [NC]
- RewriteRule ^(.*)$ http://www.baidu.com/$1 [L,R=301,NC]
复制代码
我们将域名替换成自己的域名即可实现非WWW跳转到WWW域名。
(域名.com)
- RewriteEngine On
- RewriteCond %{HTTP_HOST} !^baidu.com$ [NC]
- RewriteRule ^(.*)$ http://baidu.com/$1 [L,R=301]
复制代码
这里我们可以强制如果访问www域名前缀,会跳转到非www域名。
第二、https跳转地址
如果需要整站跳转,则在网站的配置文件的标签内,键入以下内容:
- RewriteEngine on
- RewriteCond %{SERVER_PORT} !^443$
- RewriteRule ^(.*)?$ https://%{SERVER_NAME}/$1 [L,R]
复制代码
如果对某个目录做强制跳转,则使用以下代码:
- RewriteEngine on
- RewriteBase /目录
- RewriteCond %{SERVER_PORT} !^443$
- #RewriteRule ^(.*)?$ https://%{SERVER_NAME}/$1 [L,R]
- RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
复制代码
第三、强制/斜杠结尾路径
- RewriteCond %{REQUEST_URI} /+[^\.]+$
- RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301,L]
复制代码
第四、取消/斜杠结尾
- RewriteCond %{REQUEST_FILENAME} !-d
- RewriteRule ^(.*)/$ /$1 [R=301,L]
复制代码
第五、禁止图片盗链
- RewriteEngine on
- RewriteCond %{HTTP_REFERER} !^$
- RewriteCond %{HTTP_REFERER} !^http(s)?://(.+\.)?baidu.com [NC]
- RewriteRule \.(jpg|jpeg|png|gif|bmp)$ - [NC,F,L]
复制代码