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

相关文章

vue使用docxtemplater导出word

《vue使用docxtemplater导出word》docxtemplater是一种邮件合并工具,以编程方式使用并处理条件、循环,并且可以扩展以插入任何内容,下面我们来看看如何使用docxtempl... 目录docxtemplatervue使用docxtemplater导出word安装常用语法 封装导出方

Linux换行符的使用方法详解

《Linux换行符的使用方法详解》本文介绍了Linux中常用的换行符LF及其在文件中的表示,展示了如何使用sed命令替换换行符,并列举了与换行符处理相关的Linux命令,通过代码讲解的非常详细,需要的... 目录简介检测文件中的换行符使用 cat -A 查看换行符使用 od -c 检查字符换行符格式转换将

使用Jackson进行JSON生成与解析的新手指南

《使用Jackson进行JSON生成与解析的新手指南》这篇文章主要为大家详细介绍了如何使用Jackson进行JSON生成与解析处理,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 核心依赖2. 基础用法2.1 对象转 jsON(序列化)2.2 JSON 转对象(反序列化)3.

使用Python实现快速搭建本地HTTP服务器

《使用Python实现快速搭建本地HTTP服务器》:本文主要介绍如何使用Python快速搭建本地HTTP服务器,轻松实现一键HTTP文件共享,同时结合二维码技术,让访问更简单,感兴趣的小伙伴可以了... 目录1. 概述2. 快速搭建 HTTP 文件共享服务2.1 核心思路2.2 代码实现2.3 代码解读3.

Elasticsearch 在 Java 中的使用教程

《Elasticsearch在Java中的使用教程》Elasticsearch是一个分布式搜索和分析引擎,基于ApacheLucene构建,能够实现实时数据的存储、搜索、和分析,它广泛应用于全文... 目录1. Elasticsearch 简介2. 环境准备2.1 安装 Elasticsearch2.2 J

使用C#代码在PDF文档中添加、删除和替换图片

《使用C#代码在PDF文档中添加、删除和替换图片》在当今数字化文档处理场景中,动态操作PDF文档中的图像已成为企业级应用开发的核心需求之一,本文将介绍如何在.NET平台使用C#代码在PDF文档中添加、... 目录引言用C#添加图片到PDF文档用C#删除PDF文档中的图片用C#替换PDF文档中的图片引言在当

Java中List的contains()方法的使用小结

《Java中List的contains()方法的使用小结》List的contains()方法用于检查列表中是否包含指定的元素,借助equals()方法进行判断,下面就来介绍Java中List的c... 目录详细展开1. 方法签名2. 工作原理3. 使用示例4. 注意事项总结结论:List 的 contain

C#使用SQLite进行大数据量高效处理的代码示例

《C#使用SQLite进行大数据量高效处理的代码示例》在软件开发中,高效处理大数据量是一个常见且具有挑战性的任务,SQLite因其零配置、嵌入式、跨平台的特性,成为许多开发者的首选数据库,本文将深入探... 目录前言准备工作数据实体核心技术批量插入:从乌龟到猎豹的蜕变分页查询:加载百万数据异步处理:拒绝界面

Android中Dialog的使用详解

《Android中Dialog的使用详解》Dialog(对话框)是Android中常用的UI组件,用于临时显示重要信息或获取用户输入,本文给大家介绍Android中Dialog的使用,感兴趣的朋友一起... 目录android中Dialog的使用详解1. 基本Dialog类型1.1 AlertDialog(

Python使用自带的base64库进行base64编码和解码

《Python使用自带的base64库进行base64编码和解码》在Python中,处理数据的编码和解码是数据传输和存储中非常普遍的需求,其中,Base64是一种常用的编码方案,本文我将详细介绍如何使... 目录引言使用python的base64库进行编码和解码编码函数解码函数Base64编码的应用场景注意