Apache环境.htaccess设置301跳转及常用技巧

关于.htaccess文件的设置和实际应用是相当广泛的,很多功能都可以利用这个小小的文件实现如我们使用最多的无非就是WWW或者非WWW 301跳转,顶多加上防盗链等功能
第一、强制www域名301跳转
RewriteEngine on
RewriteCond %{HTTP_HOST} ^172u.cn [NC]
RewriteRule ^(.*)$ https://www.172u.cn/$1 [L,R=301,NC]

我们将域名替换成自己的域名即可实现非WWW跳转到WWW域名。
第二、强制非WWW域名301跳转
RewriteEngine On
RewriteCond %{HTTP_HOST} !^172u.cn$ [NC]
RewriteRule ^(.*)$ http://172u.cn/$1 [L,R=301]

这里我们可以强制如果访问www域名前缀,会跳转到非www域名。
第三、强制https跳转地址
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.172u.cn/$1 [R,L]

如何我们网站采用SSL证书,则一般需要强制跳转https路径,这里需要添加强制80端口的跳转。
第四、阻止无用的蜘蛛爬取
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} (^$|FeedDemon|JikeSpider|Indy Library|Alexa Toolbar|AskTbFXTV|AhrefsBot|CrawlDaddy|CoolpadWebkit|Java|Feedly|UniversalFeedParser|ApacheBench|Microsoft URL Control|Swiftbot|ZmEu|oBot|jaunty|Python-urllib|lightDeckReports Bot|YYSpider|DigExt|HttpClient|MJ12bot|heritrix|EasouSpider|Ezooms) [NC]
RewriteRule ^(.*)$ - [F]

第五、强制/斜杠结尾路径
RewriteCond %{REQUEST_URI} /+1+$
RewriteRule ^(.+2)$ %{REQUEST_URI}/ [R=301,L]

第六、取消/斜杠结尾
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [R=301,L]

第七、将A页面301跳转到B页面
Redirect 301 /a.html https://www.172u.cn/b.html

第八、阻止某个IP访问
Order deny,allow
Allow from all
Deny from xxx.xxx.xxx.xxx

第九、禁止图片盗链
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(.+.)?172u.cn [NC]
RewriteRule .(jpg|jpeg|png|gif|bmp)$ - [NC,F,L]

第十、禁止被其他网页套用
SetEnvIf Request_URI "/starry-night" allow_framing=true
Header set X-Frame-Options SAMEORIGIN env=!allow_framing


  1. .
  2. /

此处评论已关闭