htaccess在WordPress中的一些使用技巧总结

2024-01-03 03:38

本文主要是介绍htaccess在WordPress中的一些使用技巧总结,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

域名跳转

有些时候,我们会想把domain.com的域名全部跳转到www.domain.com下。这个时候htaccess就可以派上用场了。在.htaccess文件中添加类似下面的代码:(下面这段代码在网站更换域名时,也同样使用)

RewriteCond %{HTTP_HOST} ^domain.com [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]

类似的还可以用htacess也可以用来更换URL的目录结构,这个在Category名字被更换时特别有用:

RewriteRule ^/?old_directory/([a-z/.]+)$ new_directory/$1 [R=301,L]

注:R后面的301表示此跳转为永久跳转,也可以根据实际情况该成临时跳转(302)。

防盗链

图片的盗链可能是很多站长最为头痛的事情,自己的图片被人白白拿去不说,还会免费占用了自己网站的资源,使用htaccess文件同样可以实现防盗链的功能。代码如下:

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://domain.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://domain.com$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.domain.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.domain.com$ [NC]
RewriteRule .*.(gif|jpg|jpeg|png|bmp|swf|mp3|wav|zip|rar)$ http://www.domain.com/404.html [R,NC]

这段代码会判断请求的referer,如果链接不是从本站点击过来的,默认都会跳转到一个404页面。在RewriteRule中指定了要防盗链的文件类型。

防止垃圾评论

例用htaccess同样可以防止一部分来源不明的垃圾评论:

RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} .wp-comments-post.php*
RewriteCond %{HTTP_REFERER} !.*domain.com.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule (.*) ^http://domain.com/$ [R=301,L]

这段代码,判断一个POST请求是否是由浏览器发出的(判断HTTP_USER_AGENT是否为空),并且Refer是否本站的,只要其中任意一个条件不满足,就将请求自动跳转到首页。

注意,这段代码只适用于Wordpress,其实的框架可以根据其具体情况把wp-comments-post修改成对应的URL。

只允许自己访问Wordpress的后台

如果你有一个固定的IP,那么你完全可以在htaccess中设定只有自己能访问Wordpress的后台。在wp-admin目录下建立一个新的.htaccess文件,里面写入如下代码:

AuthUserFile /dev/null
AuthGroupFile /dev/null
AuthType Basic
<LIMIT GET>
order deny,allow
deny from all

#xx.xx.xx.xx为您的IP,您也以设定多个IP。
allow from xx.xx.xx.xx
allow from xx.xx.xx.xxx

注:对于这段代码,一定是在wp-admin文件夹下建立新的htaccess,很多坑爹的文章都没有告诉你这一点,直接添加到网站根目录下的那个htacess下的话……您要是想要自己的整个网站都只能自己访问的话,不妨试试。

阻止某些IP访问自己的网站

如果有些垃圾网站的Robot总是不停的抓取你网站的数据,你可以在htaccess中屏蔽掉这些IP。

order allow,deny deny from xx.xx.xx.xx allow from all 类似的,更换一下deny和allow,可以实现只允许某些特定IP访问自己的网站,当然如果您真的想要这么做的话。

判断浏览器

浏览器兼容可以说是前端工程师最为心痛的事。与其在css中写各种hack,不如在htacess中判断浏览器,直接指向不同的css文件。

RewriteCond %{REQUEST_URI} index.css*
RewriteCond %{HTTP_USER_AGENT} "^Mozilla/4.0 " R e w r i t e R u l e ( . ∗ ) " RewriteRule ^(.*) "RewriteRule(.) http://domain.com/firefox.css
类似的,利用htacess判断访问者是否持有的是移动设备也很容易。

RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} "Windows CE" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "NetFront" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "Palm OS" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "Blazer" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "Elaine" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "^WAP.*$" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "Plucker" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "vodafone" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "iPhone" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "nokia" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "symbian" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "Opera Mini" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "BlackBerry" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "j2me" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "midp" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "htc" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "java" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "sony" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "android" [NC,OR]
RewriteCond %{HTTP_USER_AGENT} "AvantGo" [NC]
RewriteRule (.*) http://mobi.domain.com/ [R,L]

因为有点多,为了方便阅读,还有通用的浏览器的USER_AGENT放在了文章的最后。有兴趣的读者去可以去看看吧。

禁止访问特定的文件类型或文件

有些特定的文件、或某些文件,我们可能不想让用户访问到,可以用如下代码:

<Files secretfile.jpg>order allow,deny deny from all 
</Files><FilesMatch ".(htaccess|htpasswd|ini|phps|fla|psd|log|sh)$">Order Allow,Deny Deny from all 
</FilesMatch>

判断浏览器的语言

想要根据浏览器的语言设定,跳转到不同的页面,可以用如下代码:

RewriteCond %{HTTP:Accept-Language} ^zh-cn.*$ [NC]
RewriteRule ^/?$  index_cn.htm [R=301,L]

网上寻找整理的资料 其实不止适合wordpress站,其他只要支持htaccess的服务器上的网站都可以用。

本文转自六艺开源:阅读原文

这篇关于htaccess在WordPress中的一些使用技巧总结的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/564465

相关文章

mtu设置多少网速最快? 路由器MTU设置最佳网速的技巧

《mtu设置多少网速最快?路由器MTU设置最佳网速的技巧》mtu设置多少网速最快?想要通过设置路由器mtu获得最佳网速,该怎么设置呢?下面我们就来看看路由器MTU设置最佳网速的技巧... 答:1500 MTU值指的是在网络传输中数据包的最大值,合理的设置MTU 值可以让网络更快!mtu设置可以优化不同的网

Python并行处理实战之如何使用ProcessPoolExecutor加速计算

《Python并行处理实战之如何使用ProcessPoolExecutor加速计算》Python提供了多种并行处理的方式,其中concurrent.futures模块的ProcessPoolExecu... 目录简介完整代码示例代码解释1. 导入必要的模块2. 定义处理函数3. 主函数4. 生成数字列表5.

Python中help()和dir()函数的使用

《Python中help()和dir()函数的使用》我们经常需要查看某个对象(如模块、类、函数等)的属性和方法,Python提供了两个内置函数help()和dir(),它们可以帮助我们快速了解代... 目录1. 引言2. help() 函数2.1 作用2.2 使用方法2.3 示例(1) 查看内置函数的帮助(

Linux脚本(shell)的使用方式

《Linux脚本(shell)的使用方式》:本文主要介绍Linux脚本(shell)的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录概述语法详解数学运算表达式Shell变量变量分类环境变量Shell内部变量自定义变量:定义、赋值自定义变量:引用、修改、删

Java使用HttpClient实现图片下载与本地保存功能

《Java使用HttpClient实现图片下载与本地保存功能》在当今数字化时代,网络资源的获取与处理已成为软件开发中的常见需求,其中,图片作为网络上最常见的资源之一,其下载与保存功能在许多应用场景中都... 目录引言一、Apache HttpClient简介二、技术栈与环境准备三、实现图片下载与保存功能1.

Python中使用uv创建环境及原理举例详解

《Python中使用uv创建环境及原理举例详解》uv是Astral团队开发的高性能Python工具,整合包管理、虚拟环境、Python版本控制等功能,:本文主要介绍Python中使用uv创建环境及... 目录一、uv工具简介核心特点:二、安装uv1. 通过pip安装2. 通过脚本安装验证安装:配置镜像源(可

LiteFlow轻量级工作流引擎使用示例详解

《LiteFlow轻量级工作流引擎使用示例详解》:本文主要介绍LiteFlow是一个灵活、简洁且轻量的工作流引擎,适合用于中小型项目和微服务架构中的流程编排,本文给大家介绍LiteFlow轻量级工... 目录1. LiteFlow 主要特点2. 工作流定义方式3. LiteFlow 流程示例4. LiteF

使用Python开发一个现代化屏幕取色器

《使用Python开发一个现代化屏幕取色器》在UI设计、网页开发等场景中,颜色拾取是高频需求,:本文主要介绍如何使用Python开发一个现代化屏幕取色器,有需要的小伙伴可以参考一下... 目录一、项目概述二、核心功能解析2.1 实时颜色追踪2.2 智能颜色显示三、效果展示四、实现步骤详解4.1 环境配置4.

使用jenv工具管理多个JDK版本的方法步骤

《使用jenv工具管理多个JDK版本的方法步骤》jenv是一个开源的Java环境管理工具,旨在帮助开发者在同一台机器上轻松管理和切换多个Java版本,:本文主要介绍使用jenv工具管理多个JD... 目录一、jenv到底是干啥的?二、jenv的核心功能(一)管理多个Java版本(二)支持插件扩展(三)环境隔

SQL中JOIN操作的条件使用总结与实践

《SQL中JOIN操作的条件使用总结与实践》在SQL查询中,JOIN操作是多表关联的核心工具,本文将从原理,场景和最佳实践三个方面总结JOIN条件的使用规则,希望可以帮助开发者精准控制查询逻辑... 目录一、ON与WHERE的本质区别二、场景化条件使用规则三、最佳实践建议1.优先使用ON条件2.WHERE用