WordPress免插件自动更新sitemap.xml站点地图

不喜欢给WordPress安装各种插件的话,可以用本文的方法免插件生成sitemap站点地图,可以同时生成首页、文章、单页面、分类和标签的sitemap


将以上代码保存为sitemap.php放在网站根目录,然后复制以下代码:

加入到伪静态规则.htaccess文件里的RewriteBase /的下面,保存覆盖。

然后就可以通过http://zhangwenbao.com/sitemap.xml来访问站点地图了,这个地址就可以提交到各大搜索引擎的站长平台里。

利用.htaccess设置WordPress防盗链

站长都清楚,如果文章被转载到其它网站,甚至文章图片的链接地址都不改,直接远程链接图片,对自己网站的流量和带宽会有大量消耗,所以WordPress设置图片防盗链是非常有必要的。

本方法适用于Apache环境,需要开启mod_rewrite模块以支持htaccess规则,以下是具体的.htaccess文件里的代码:

将以上代码保存为.htaccess文件,覆盖wordpress根目录已有的.htaccess文件即可,并将其权限设置为444只读,可以防止设置程序时被自动替换掉,还可以增加网站的安全性。
代码里的网址是白名单网址,就是允许转载显示图片的网站,大都是搜索引擎,可自行添加白名单,来自上面的网站则正常显示图片,否则直接转到一张指定的盗链提示图片。
将代码里的zhangwenbao.com改为你的域名,把http://zhangwenbao.com/wp-content/uploads/2018/06/logo.png改为你自己的盗链提示图片。

http跳转https和https跳转http的两种301重定向代码

很多博主看到有主机商提供免费的DV SSL证书,也喜欢尝新鲜把自己的独立博客网站改为https访问,显得很有技术范儿,当然既有一定的安全性也有利于搜索引擎收录。下面这rewrite规则是重定向到https。

将 http 访问强制重定向至 https,代码如下:

另外一部分博主在用了DV SSL证书后,发现有很多插件不支持,访问速度变慢等各种原因,最要命的是发现DV SSL证书只能免费用一年,第二年再用的话,要花很多银子,又想切换成http访问,但这个时候发现搜索引擎收录的全是https的网址了,这里需要设置所有的https页面重定向到http页面,需要用到以下的rewrite规则

将 https 访问强制重定向至 http,代码如下:

以上重写规则只能用在APACHE环境,将以上代码保存为.htaccess放在网站根目录即可。

禁止网站目录php脚本执行权限的配置方法

在安装完织梦DedeCMS后,进入后台主页会有安全提示uploads、data目录有PHP执行权限,我们可以用.htaccess文件来禁止指定目录的执行权限,在配置前需要确认你的空间是否支持.htaccess和rewrite,该方法基于.htaccess文件中使用rewrite来达到禁止指定脚本的运行效果。
方法如下,新建.txt记事本文档,将下面内容复制粘贴到记事本,另存为的时候,编码选ANSI类型,保存类型选所有文件,文件名填.htaccess保存后上传到网站根目录即可。

以上只是针对uploads、data、templets 三个目录做了执行php脚本限制,如果还有其它目录也需要,例如存放图片类的、JS、CSS、纯静态html文件的目录都可以做这个禁止PHP脚本执行的安全设置。

如果是apache环境独立主机的话,可以采用以下的办法:

复制以上内容张贴到httpd.conf文件里保存,dir为你要禁止的目录的绝对地址,例如E:\wwwroot\dedecms\uploads
FilesMatch后的内容为需要限定的执行的脚本后缀名,例如:这里需要禁止uploads文件夹下的PHP、ASP、JSP脚本的运行
在配置保存后,重启一下apache,配置便生效!

windows系统的主机,需要打开IIS中站点,在站点uploads目录、data目录以及静态html生成目录点击右键,菜单中选择“属性”,在目录属性面板选择执行权限为“无”即可。

IIS7也类似于IIS6.0,选择站点对应的目录,data、uploads及静态html文件目录,双击功能试图面板中的“处理程序映射”

在“编辑功能权限……”中,我们直接去除脚本的执行权限即可。

利用.htaccess将一个虚拟主机绑定多个独立网站

虚拟主机可以绑定很多域名,但是打开后是同一个网站,如何让一个虚拟主机绑定不同的域名,并且打开域名后访问的是不同的网站,只要你的主机开启了rewrite重写模块,支持.htaccess的话,就可以做到,这样对于一些要求不高的网站可以节省网站成本。

比如我们要实现以下的域名绑定,虚拟主机里分别有三个目录:site1、site2、site3

site1目录:绑定域名site1.com和www.site1.com

site2目录:绑定域名site2.com和www.site2.com

site3目录:绑定域名site3.com和www.site3.com

方法如下:

第一步,先把所有的域名和虚拟主机互相绑定解析。

第二步,在虚拟主机网站根目录下放置一个.htaccess文件,内容如下:

上面的代码的作用是把www.site1.com这个域名绑定到了虚拟主机里site1这个目录,相当于site1就是一个独立域名主机服务器。但是如果只到这里,你会发现,当你通过www.site.com/site1/的方式也可以访问www.site1.com里面的内容,这当然是我们不想看到的,也不利于seo。如果禁止其他域名访问www.site1.com中的内容呢?接下来需要继续操作:

第三步,在site1目录下放置一个.htaccess文件,内容如下:

通过以上两步,已经成功的实现了域名www.site1.com绑定site1子目录,如果继续增加www.site2.com、www.site3.com等站点的话,和上面的方法一样。

保哥亲测可用!这个方法对于一些空间商后台不支持子目录绑定功能的虚拟主机,可使用此方法破解!

以上.htaccess文件里代码的作用

【RewriteEngine On】
表示重写引擎开,关闭off,作用就是方便的开启或关闭以下的语句,这样就不需要一条一条的注释语句了。

【RewriteCond %{HTTP_HOST} ^(www\.)?site1\.com$ [NC]】
表示重写条件,前面%{HTTP_HOST}表示当前访问的网址,只是指前缀部分,格式是www.site1.com不包括“http://”和“/”,^表 示字符串开始,$表示字符串结尾,\.表示转义的. ,如果不转义也行,推荐转义,防止有些服务器不支持,?表示前面括号www\.出现0次或1次,这句规则的意思就是如果访问的网址是site1.com或者 www.site1.com就执行以下的语句,不符合就跳过。还有,不能保证每个人输入的网址都是小写的,如果输入大写的呢,linux系统是区分大小写的,所以应该在RewriteCond后添加[NC]忽略大小写的。

【RewriteCond %{REQUEST_URI} !^/blog/】
也是重写条件,%{REQUEST_URI}表示访问的相对地址,就是相对根目录的地址,就是域名/后面的成分,格式上包括最前面的“/”,!表示非,这句语句表示访问的地址不以/blog/开头,只是开头^,没有结尾$

【RewriteCond %{REQUEST_FILENAME} !-f】
【RewriteCond %{REQUEST_FILENAME} !-d】
这两句语句的意思是请求的文件或路径是不存在的,如果文件或路径存在将返回已经存在的文件或路径

【RewriteRule ^(.*)$ blog/$1】
表示重写规则,最重要的部分,意思是当上面的RewriteCond条件都满足的时候,将会执行此重写规则,^(.*)$是一个正则表达的 匹配,匹配的是当前请求的URL,^(.*)$意思是匹配当前URL任意字符,.表示任意单个字符,*表示匹配0次或N次(N>0),后面 /site1/$1是重写成分,意思是将前面匹配的字符重写成/site1/$1,这个$1表示反向匹配,引用的是前面第一个圆括号的成分,即^(.*)$中 的.* 。

 

利用.htaccess添加X-frame-options响应头

360网站安全检测结果提示[轻微]X-Frame-Options头未设置,官方的解决方法如下:

修改web服务器配置,添加X-frame-options响应头。赋值有如下三种:
(1)DENY:不能被嵌入到任何iframe或frame中。
(2)SAMEORIGIN:页面只能被本站页面嵌入到iframe或者frame中。
(3)ALLOW-FROM uri:只能被嵌入到指定域名的框架中。
也可在代码中加入,在PHP中加入:

 

但是如果没有主机权限的话,只有FTP权限的话,可以利用.htaccess来设置,方法如下:

 

将以上代码写入.htaccess文件上传覆盖即可。

WordPress在Nginx下开启伪静态后台页面404路径缺少wp-admin问题

WordPress默认的伪静态规则文件是.htaccess,.htaccess文件是在Apache环境下用的,而Nginx环境并不支持.htaccess,是通过.conf文件来配置规则。Nginx下的WordPress伪静态规则配置如下:

 

加入上面的代码到网站对应的.conf文件里后,前台页面确实实现了伪静态url访问,但进入后台发现不能访问,后台所有的url地址中原来的/wp-admin/不见了,解决办法是在上面的代码后面再加入一行斜杠重定向规则,具体代码如下:

 

Typecho伪静态规则及301跳转设置

一、Typecho在Apache环境下的伪静态规则(.htaccess文件或httpd.conf配置)

 

带www域名跳转到不带www的域名

 

不带www域名跳转到带www的域名

 

注:最新的 SVN 在后台启用重写功能的时候能自动生成 .htaccess 文件。

二、Typecho在Nginx环境下的伪静态规则(conf文件配置)

 

三、Typecho在SAE环境下的伪静态规则(config.yaml文件配置)

 

四、Typecho在IIS下的伪静态规则(httpd.ini文件配置)

 

另一个:

 

注意:配置好伪静态后,记得到Typecho后台设置永久链接里,启用地址重写功能。