您现在的位置是:首页 > cms教程 > WordPress教程WordPress教程
WordPress根目录.htaccess文件使用方法
紫南2025-03-02WordPress教程已有人查阅
导读有些用户可能还不知道.htaccess文件是什么,所以我们首先来说明一下htaccess的作用。在wordpress的根目录下,你会看到一 个名为.htaccess的文件,它可以是由系统创建、也可以是用
有些用户可能还不知道.htaccess文件是什么,所以我们首先来说明一下htaccess的作用。在wordpress的根目录下,你会看到一 个名为.htaccess的文件,它可以是由系统创建、也可以是用户自己编辑而成的。它是Apache服务器中的一个配置文件,它负责相关目录下的网页配 置,对wordpress中实现长久链接(Permalink)至关重要。同时利用它,我们也可以实现:网页301重定向、自定义404错误页面、改变文 件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。下面我们就来看看如何配制htaccess。
以下是Wordpress中默认的htaccess内容。我们一一来看一下每一行的作用。
“RewriteBase /” 用来表示Apache要对URL重写的部分。比方站点为http://domain.com/。RewriteBase后面为“/”时,表示对主域名下面 的所有子路径进行重写,如果是“/blog/” 是只会对http://domain.com/blog/后面的部分进行重写。
RewriteCond表示重写URL应满足的一些条件,RewriteRule 后面的第一个参数表示要重写的URL满足的规则(正则表达式),第二个参数表示重写后的URL。之后的那个[L]表示表明当前规则是之后一条规则,停止分 析以后规则的重写。(方框内还可以支持很多其它参数,我们会在下面介绍)
所以“RewriteRule ^index\.php$ - [L]”表示若当前请求的URL恰好为index.php,则不要进行后面的判断了。
“RewriteCond %{REQUEST_FILENAME} !-f”和“RewriteCond %{REQUEST_FILENAME} !-d”表示当前的URL并不是一个文件(-f)或目录(-d)。当这两个条件同时满足时,之后一条“RewriteRule . /index.php [L]”会把所有请求都重写为index.php。
从这里我们可以看出,wordpress默认把所有不指到静态文件或目录的url全部重写到了index.php,然后由index.php统一处理请求。
刚才我们提到了[L]的作用,其实RewriteRule还支持很多其它参数,包括:
R 强制外部重定向,后面可以代301或302跳转。
F 禁用URL,返回403HTTP状态码。
G 强制URL为GONE,返回410HTTP状态码。
P 强制使用代理转发。
L 表明当前规则是之后一条规则,停止分析以后规则的重写。
N 重新从第一条规则开始运行重写过程。
C 与下一条规则关联。
T=MIME-type(force MIME type) 强制MIME类型。
NS 只用于不是内部子请求。
NC 不区分大小写。
QSA 追加请求字符串。
NE 不在输出转义特殊字符。htaccess在Wordpress中的一些使用技巧
上面讲了一下Wordpress中.httaccess的基本用途,其实利用htaccess文件还可以帮助我们完成很多其它的工作。下面我来介绍其中一些常用的功能,更多的读者可以自己去尝试。域名跳转
有些时候,我们会想把domain.com的域名全部跳转到 .domain.com下。这个时候htaccess就可以派上用场了。在.htaccess文件中添加类似下面的代码:(下面这段代码在网站更换域名时,也同样使用)
图片的盗链可能是很多站长最为头痛的事情,自己的图片被人白白拿去不说,还会免费占用了自己网站的资源,使用htaccess文件同样可以实现防盗链的功能。代码如下:
例用htaccess同样可以防止一部分来源不明的垃圾评论:
注意,这段代码只适用于Wordpress,其实的框架可以根据其具体情况把wp-comments-post修改成对应的URL。只允许自己访问Wordpress的后台
如果你有一个固定的IP,那么你完全可以在htaccess中设定只有自己能访问Wordpress的后台。在wp-admin目录下建立一个新的.htaccess文件,里面写入如下代码:
如果有些垃圾网站的Robot总是不停的抓取你网站的数据,你可以在htaccess中屏蔽掉这些IP。
浏览器兼容可以说是前端工程师最为心痛的事。与其在css中写各种hack,不如在htacess中判断浏览器,直接指向不同的css文件。
有些特定的文件、或某些文件,我们可能不想让用户访问到,可以用如下代码:
想要根据浏览器的语言设定,跳转到不同的页面,可以用如下代码:
以下是Wordpress中默认的htaccess内容。我们一一来看一下每一行的作用。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L] </IfModule>
第一行用来判断Apache中是否安装了rewrite模块。如果存在rewrite模块,“RewriteEngine On” 则用来开启rewrite模块。“RewriteBase /” 用来表示Apache要对URL重写的部分。比方站点为http://domain.com/。RewriteBase后面为“/”时,表示对主域名下面 的所有子路径进行重写,如果是“/blog/” 是只会对http://domain.com/blog/后面的部分进行重写。
RewriteCond表示重写URL应满足的一些条件,RewriteRule 后面的第一个参数表示要重写的URL满足的规则(正则表达式),第二个参数表示重写后的URL。之后的那个[L]表示表明当前规则是之后一条规则,停止分 析以后规则的重写。(方框内还可以支持很多其它参数,我们会在下面介绍)
所以“RewriteRule ^index\.php$ - [L]”表示若当前请求的URL恰好为index.php,则不要进行后面的判断了。
“RewriteCond %{REQUEST_FILENAME} !-f”和“RewriteCond %{REQUEST_FILENAME} !-d”表示当前的URL并不是一个文件(-f)或目录(-d)。当这两个条件同时满足时,之后一条“RewriteRule . /index.php [L]”会把所有请求都重写为index.php。
从这里我们可以看出,wordpress默认把所有不指到静态文件或目录的url全部重写到了index.php,然后由index.php统一处理请求。
刚才我们提到了[L]的作用,其实RewriteRule还支持很多其它参数,包括:
R 强制外部重定向,后面可以代301或302跳转。
F 禁用URL,返回403HTTP状态码。
G 强制URL为GONE,返回410HTTP状态码。
P 强制使用代理转发。
L 表明当前规则是之后一条规则,停止分析以后规则的重写。
N 重新从第一条规则开始运行重写过程。
C 与下一条规则关联。
T=MIME-type(force MIME type) 强制MIME类型。
NS 只用于不是内部子请求。
NC 不区分大小写。
QSA 追加请求字符串。
NE 不在输出转义特殊字符。htaccess在Wordpress中的一些使用技巧
上面讲了一下Wordpress中.httaccess的基本用途,其实利用htaccess文件还可以帮助我们完成很多其它的工作。下面我来介绍其中一些常用的功能,更多的读者可以自己去尝试。域名跳转
有些时候,我们会想把domain.com的域名全部跳转到 .domain.com下。这个时候htaccess就可以派上用场了。在.htaccess文件中添加类似下面的代码:(下面这段代码在网站更换域名时,也同样使用)
RewriteCond %{HTTP_HOST} ^domain\.com [NC] RewriteRule ^(.*)$ http:// .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:// .domain.com/.*$ [NC] RewriteCond %{HTTP_REFERER} !^http:// .domain.com$ [NC] RewriteRule .*\.(gif|jpg|jpeg|png|bmp|swf|mp3|wav|zip|rar)$ http:// .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
< /LIMIT>
注:对于这段代码,一定是在wp-admin文件夹下建立新的htaccess,很多坑爹的文章都没有告诉你这一点,直接添加到网站根目录下的那个htacess下的话……您要是想要自己的整个网站都只能自己访问的话,不妨试试。阻止某些IP访问自己的网站如果有些垃圾网站的Robot总是不停的抓取你网站的数据,你可以在htaccess中屏蔽掉这些IP。
<Limit GET POST>
order allow,deny
deny from xx.xx.xx.xx
allow from all
< /Limit>
类似的,更换一下deny和allow,可以实现只允许某些特定IP访问自己的网站,当然如果您真的想要这么做的话。判断浏览器浏览器兼容可以说是前端工程师最为心痛的事。与其在css中写各种hack,不如在htacess中判断浏览器,直接指向不同的css文件。
RewriteCond %{REQUEST_URI} index\.css*
RewriteCond %{HTTP_USER_AGENT} "^Mozilla/4.0$"
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]总结
就说到这里了,其实htaccess的用途还有很多很多,读者可以根据上面的例子自己去挖掘htaccess的新的用途。不过注意修改htaccess时一定要小心,因为一但写错,很可能导致整个网站都无法访问。
本文标签:
很赞哦! ()
相关教程
- PHP自动生成PHPCMS伪静态规则.htaccess的方法
- PbootCMS的.htaccess文件有什么用
- 织梦dedecms用.htaccess文件禁止IP访问的实现方法
- ecshop网站怎么利用.htaccess实现301重定向
- 织梦dedecms利用.htaccess指定IP或IP段禁止访问的方法
- 织梦cms通过.htaccess禁止指定IP或IP段访问的方法
- WordPress的.htaccess怎么优化
- wordpress的.htaccess自动恢复成默认模式的解决方法
- WordPress为什么找不到.htaccess文件,修改WordPress的.htaccess
- 帝国CMS伪静态虚拟主机设置.htaccess的方法
图文教程
WordPress博客首页怎么实现静态
WordPress博客首页静态的方法如下:首先新建一个php文件,文字可以自取,自己要记住,比如index-html.php,
wordpress建网站的方法和步骤
域名就是一个网站的地址,例如 .baidu.com即为百度。购买域名可以到一些知名的网站去购买,例如万网,请首先考虑好域名的名字, 非常重要。
WordPress主题制作之single.php制作方法
今天我们来制作单文章页single.php,有了之前制作index.php的经验,制作single.php也不再那么难了,这里将直接略过一些内容,直接给出结果。
WordPress实现屏蔽国内用户的方法
有些外贸企业会选择屏蔽国内的IP访问自家的外贸网站,可能的原因包括:防止国内竞争对手了解自己的产品等,因为国内有些企业确实存在抄袭的不良竞争行为。
相关源码
-
(PC+WAP)历史复古古典古籍文章资讯类pbootcms模板下载本模板基于PbootCMS系统开发,为古籍研究、历史文献类网站设计,特别适合展示古典书籍、历史档案等文化内容。采用复古风格设计,同时具备现代化响应式布局,确保在PC和移动设备上都能呈现优雅的阅读体验。查看源码 -
(PC+WAP)餐饮奶茶美食小吃招商加盟pbootcms模板源码下载为茶饮烘焙、小吃快餐等餐饮品牌打造的招商加盟系统,助力品牌快速拓展市场;双端pc+wap设计呈现加盟政策对比表。支持后台实时更新菜品图片、加盟费用等关键信息。查看源码 -
(自适应响应式)html5蓝色智能水表营销型网站pbootcms模板下载PbootCMS内核开发,为智能水表企业打造的营销型网站解决方案,本模板基于PbootCMS内核开发,为智能水表及相关行业企业设计,采用HTML5+CSS3技术构建,具有响应式布局。查看源码 -
(PC+WAP)安保服务保安保镖模板免费下载本模板基于PbootCMS内核开发,为安保服务企业量身打造。设计风格严谨专业,突出安保行业的安全、可靠特性,展示企业服务项目与实力。采用响应式设计,PC与移动端数据同步,管理便捷。模板布局合理查看源码 -
(PC+WAP)蓝色低碳环保隔断板装修装饰类网站pbootcms源码下载本款基于PbootCMS开发的网站模板为活动隔断板、装修装饰行业打造,特别适合移动隔断、环保隔断、办公分区等产品的展示与推广。查看源码 -
响应式WordPress简约博客主题Alt_BlogAlt_Blog主题该模板为博客内容展示设计,采用简约现代的风格理念,打造清晰的内容呈现平台。响应式布局确保在不同设备上都能获得良好的浏览体验,帮助博主更好地展示和分享内容。查看源码
| 分享笔记 (共有 篇笔记) |
