.htaccess设置301跳转及常用技巧整理
发布时间:2023-10-07

    在虚拟主机环境中,基本上都是Apache环境。Apache的伪静态的设置,都是在网站根目录设置.htaccess文件,在.htaccess文件中无论是伪静态,

    还是301跳转,甚至是防盗链和禁止某个IP的访问都可以很简单的设置。

    关于.htaccess文件的设置和实际应用是相当广泛的,很多功能都可以利用这个小小的文件实现,只不过我们普通用户使用的并不多而已,比如我们常用的301跳转就医带WWW的二级域名跳向不带WWW的顶级域名,

    或者一防盗链,或是禁止IP等。这篇文章我们就介绍几种,.htaccess文件的常见的用法。

    强制www域名301跳转
    直接将域名替换成自己的域名即可实现非WWW跳转到WWW域名。


    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^pazzn.com [NC]
    RewriteRule ^(.*)$  [LR=301NC]


    强制非WWW域名301跳转
    如果访问www域名前缀,会跳转到非www域名,域名替换成自己的


    RewriteEngine On
    RewriteCond %{HTTP_HOST} !^pazzn.com$ [NC]
    RewriteRule ^(.*)$  [LR=301]


    强制https跳转地址

    网站如果采用SSL证书,则一般需要强制跳转https路径,这里需要添加强制80端口的跳转,服务器也要开启443的端口。


    RewriteEngine On
    RewriteCond %{SERVER_PORT} 80
    RewriteRule ^(.*)$  [RL]


    阻止无用的蜘蛛爬取
    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]

    将A页面301跳转到B页面
    Redirect 301 /a.html 

    全部重定向到B网站
    RewriteEngine on
    RewriteRule ^(.*)$  [R=301L]

    阻止某个IP访问
    Order denyallow
    Allow from all
    Deny from 127.0.0.1

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

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

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

    禁止图片盗链
    RewriteEngine on
    RewriteCond %{HTTP_REFERER} !^$
    RewriteCond %{HTTP_REFERER} !^http(s)?://(.+.)?feiniaomy.com [NC]
    RewriteRule .(jpg|jpeg|png|gif|bmp)$ - [NCFL]

    总结:以上就是apache中.htaccess文件的常用几中设置的方法,但要注意的是,在编辑apache的.htaccess文件时,使用一些代码编辑器进行编辑。