月度归档:2021年03月

301跳转到https域名的方法(Apache和Kangle适用)

2017年是https流行的年份,大大小小的网站纷纷上了ssl,进而产生了新的问题:域名跳转怎么做?

域名跳转常见有301和302两种方式,通过http://tool.chinaz.com/pagestatus/ 可以查询具体状态码,301是公认最好的跳转方式

我以Apache(kangle也兼容)web服务器为例,展示下本博客(wordpress程序)的.htaccess文件代码:

RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.johntitorblog.com/$1 [R=301,L]

而下面的代码应该是比较通用的,适合非wordpress程序:

RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.xxx.com/$1 [L,R=301]
RewriteCond %{HTTP_HOST} ^xxx.com [NC]
RewriteRule ^(.*)$ https://www.xxx.com/$1 [L,R=301]

该代码设置后所有的域名都会跳转到https带www的域名下,状态码是301,全站链接都会跳,是完美的。

PHP层面实现全站301

管他win还是lin,只要是php就通吃,全站301跳转!

网站根目录放301.inc.php,内容如下:

 <?php
 $the_host = $_SERVER['HTTP_HOST'];//取得当前域名
 $the_url = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : ";//判断地址后面部分
 $the_url = strtolower($the_url);//将英文字母转成小写
 if($the_url=="/index.php")//判断是不是首页
 {
 $the_url="";//如果是首页,赋值为空
 }
 if($the_host !== 'www.201410.com')//如果域名不是带www的网址那么进行下面的301跳转
 {
 header('HTTP/1.1 301 Moved Permanently');//发出301头部
 header('Location:http://www.201410.com'.$the_url);//跳转到带www的网址
 }
 ?> 

在网站全局配置文件的头部,输入一下代码:

include("301.inc.php");

保存覆盖,完工。

一个插件解决WordPress 自动保存草稿失败等问题

本条目发布于2018年1月16日。

为了安全性,博客每次都会被升级到最新版。结果最近我发现写文章的时候,百分之百会出现卡在“正在自动保存草稿”这个问题上,可是一定不会保存成功,以致于“发布”按钮都是灰色的,写完的文章完全发不出去,我只能干瞪眼儿。。。

还有一个问题,在后台里面直接回复留言,必定会失败,也不知道中了什么邪。

百度了好久都找不到解决方法。

后来找到了一个Wordpress数据库优化插件——wp-optimize,我就给数据库优化了一下,删除了所有乱七八糟没用的数据,至此,小博客所有功能都恢复正常!

华硕RT-AC66U_B1 固件降级+刷梅林固件的方法

目前新买的ac66u_b1 如果是官方最新固件的话,无法直接刷第三方固件。

降级可以解决问题。即,我们只需要上传一个低版本的官方固件,即可解除限制。

步骤1:
把低版本固件(版本号:3.0.0.4.384_20308)下载到电脑桌面,百度网盘地址https://pan.baidu.com/s/1fXVr3cm7fheQd15sQtc19Q  提取码:juzc

步骤2:
登录66u_b1路由器后台——系统管理——固件升级 页面,手动上传刚才下载的低版本固件。刷固件过程需要数分钟,稍安勿躁。

成功降级之后,再去看这篇教程即可刷成梅林固件,祝顺利!

梅林固件双清

很多时候,由于固件没刷好,或者固件有问题,需要我们把路由器双清一下便于解决问题。那么,先恢复出厂设置,然后再格式化jffs分区,这两个步骤我们称之为“双清”。

步骤1:路由器后台——系统管理——恢复/导出/上传设置,点击原厂默认值右边的【恢复】按钮,进行初始化设置。此过程或抹掉路由器的设置信息。

步骤2:路由器后台——系统管理——系统设置,Format JFFS paritition at next boot 和 Enable JFFS custom scripts and configs 选项,都选择”是“,然后点页面最下面的“应用本页面设置”,重启路由器即可。

CentOS6中添加/更改Swap

1、检查 Swap 空间
在设置 Swap 文件之前,有必要先检查一下系统里有没有既存的 Swap 文件。
运行以下命令:

swapon -s

如果返回的信息概要是空的,则表示 Swap 文件不存在。

2、检查文件系统
在设置 Swap 文件之前,同样有必要检查一下文件系统,看看是否有足够的硬盘空间来设置 Swap 。运行以下命令:

df -hal

检查返回的信息,还剩余足够的硬盘空间即可。

3、创建并允许 Swap 文件
下面使用 dd 命令来创建 Swap 文件。

dd if=/dev/zero of=/swapfile bs=1024 count=512k

参数解读:
if=文件名:输入文件名,缺省为标准输入。即指定源文件。< if=input file >
of=文件名:输出文件名,缺省为标准输出。即指定目的文件。< of=output file >
bs=bytes:同时设置读入/输出的块大小为bytes个字节
count=blocks:仅拷贝blocks个块,块大小等于bs指定的字节数。

4、格式化并激活 Swap 文件
上面已经创建好 Swap 文件,还需要格式化后才能使用。运行命令:

mkswap /swapfile

激活 Swap ,运行命令:

swapon /swapfile

以上步骤做完,再次运行命令:

swapon -s

你会发现返回的信息概要:

Filename                Type        Size    Used    Priority
/swapfile               file        524284    0     -1

如果要机器重启的时候自动挂载 Swap ,那么还需要修改 fstab 配置。
用 vi 编辑 /etc/fstab 文件(echo "/swapfile swap swap defaults 0 0" >> /etc/fstab),在其最后添加如下一行:

/swapfile          swap            swap    defaults        0 0

最后,赋予 Swap 文件适当的权限:

chown root:root /swapfile
chmod 0600 /swapfile

这样一来,Swap 分区重启后都会生效了。

原文:http://teddysun.com/321.html

VPS上开通最低权限的SSH账户(debian和centos可用)

考虑到安全问题,我们不敢把自己的root账户给别人用。如果朋友急着要用怎么办呢?其实也很简单,给朋友建一个最低权限的SSH账户吧,只能用,不能运行SSH命令不能打开SFTP,对你的网站不会有影响。

方法很简单,第一步,登录SSH,执行如下命令,添加一个最低权限的用户,这里我要添加用户jiangzemin:

useradd -M -s /bin/false jiangzemin

第二步,添加该用户的密码:

passwd jiangzemin

然后会系统会让你输入两遍密码,完事后jiangzemin这个账户就建立成功了,可以直接使用了。

【其他常用命令】:

*如果要开通一个有时效的账户,且同时设置密码:,比如2015.1.5到期,且密码设为abc123:

useradd -s /bin/false -M jiangzemin -e 2015-01-05 && echo abc123 | passwd -stdin jiangzemin

*如果要变更一个账户的截止时间,比如2015.12.16到期:

usermod -e 2015-12-16 jiangzemin

本方法在debian和centos下测试通过,但是debian不支持-stdin,因此debian系统下改密码就得用passwd 用户名 这个方法了。

CentOS6用iptables实现端口/端口段转发

以下代码的作用是把本机指定端口流量转发到目标服务器上。


必须先开启服务器的转发功能,打开控制台输入 vi /etc/sysctl.conf 然后找到 net.ipv4.ip_forward = 0 修改为 net.ipv4.ip_forward = 1 随后保存。

执行 sysctl -p 来使更改生效。

然后执行以下命令来添加iptables转发规则

【单端口转发】

iptables -t nat -A PREROUTING -p tcp --dport [要转发的端口号] -j DNAT --to-destination [要转发的服务器IP]
iptables -t nat -A PREROUTING -p udp --dport [要转发的端口号] -j DNAT --to-destination [要转发的服务器IP]
iptables -t nat -A POSTROUTING -p tcp -d [要转发的服务器IP] --dport [要转发的端口号] -j SNAT --to-source [本机IP]
iptables -t nat -A POSTROUTING -p udp -d [要转发的服务器IP] --dport [要转发的端口号] -j SNAT --to-source [本机IP]

【端口段转发】,栗子:转发10000到20000这个端口段,则填10000:20000

iptables -t nat -A PREROUTING -p tcp --dport [要转发的端口段] -j DNAT --to-destination [要转发的服务器IP]
iptables -t nat -A PREROUTING -p udp --dport [要转发的端口段] -j DNAT --to-destination [要转发的服务器IP]
iptables -t nat -A POSTROUTING -p tcp -d [要转发的服务器IP] --dport [要转发的端口段] -j SNAT --to-source [本机IP]
iptables -t nat -A POSTROUTING -p udp -d [要转发的服务器IP] --dport [要转发的端口段] -j SNAT --to-source [本机IP]

查看添加的规则
iptables -t nat -vnL POSTROUTING --line-number
iptables -t nat -vnL PREROUTING --line-number

最后保存规则和重启iptables服务
service iptables save
service iptables restart