更换了 VPS,就要开始给网站搬家,搬家出现的第一个问题就是 WordPress 的伪静态问题。新的VPS 采用了 LNMP 环境,安装的是 AMH 面板。之前使用的是LAMP环境的 Webmin,但是 Webmin 功能过于臃肿复杂,比较耗内存,而且Nginx 对比 Apache 更高效稳定。所以这次决定采用 LNMP 环境。虽说这样比较折腾,但是只有去折腾才会有意外的收获。
Nignx 不支持 .htaccess 伪静态规则,需要修改 Nignx 相应的配置文件添加伪静态规则,以下记录了整个修改配置过程:
1,登录到 Linux 服务器,
2,打开/usr/local/nginx/conf/vhost/“你的域名”.conf,Linux命令如:
vi /usr/local/nginx/conf/vhost/sufaming.com.conf
3,找到
{
root / 你的网站路径
}
输入 i (插入文本命令)
在其下加上:
location / {
index index.html index.php;
if (-f $request_filename/index.html){
rewrite (.*) $1/index.html break;
}
if (-f $request_filename/index.php){
rewrite (.*) $1/index.php;
}
if (!-f $request_filename){
rewrite (.*) /index.php;
}
}
4,,最后按ESC键 跳到命令模式,输入 :wq ,保存文件并退出vi。
修改后保存即可。。。保存后还没生效,需要ssh链接后给予
service nginx reload
命令才会生效
万能的wordpress伪静态配置规则
rewrite ^.*/files/(.*)$ /wp-includes/ms-files.php?file=$1 last;
if (!-e $request_filename) {
rewrite ^.+?(/wp-.*) $1 last;
rewrite ^.+?(/.*.php)$ $1 last;
rewrite ^ /index.php last;
}
另外一种nginx下WordPress固定链接的伪静态规则
在nginx配置文件nginx.conf的location段添加一行就OK。
1. 打开nginx配置文件:
# vim /etc/nginx/nginx.conf(此路径根据Linux版本与安装路径会有不同)
2. 在server容器中添加下面这几行
location /
{
try_files $uri $uri/ /index.php?q=$uri&$args;
}
3. 重新加载nginx配置文件
# /etc/init.d/nginx reload