wordpress 伪静态rewrite几种方法优缺点

我用的这个百度bch空间,path_info默认开启,所以wordpress能实现 xx.com/index.php/123.html 这种模式的伪静态链接。但感觉这类url不好看,于是改为 xxx.com/archives/123.html 在WordPress后台“设置”-》“固定链接”自定义方式,修改好后。访问页面显示404,通过网上查询得知需要配置主机的 rewrite方式。

适合百度bch虚拟空间的有这么几种:

新建文本文件,重命名为 bcloud_nginx_user.conf

然后添加代码,并上传到webroot文件夹内,然后登陆主机控制面板,常用操作,主机启停,然后在页面点击“重新加载服务”即可启用配置。

配置代码如下:

方式1:

location / {
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;
}

}

方式2

location / {
try_files $uri $uri/ /index.php?$args;

}


这两种方式其实原理都相同,就是判断文件是否存在,如果存在就读取,不存在则改写url到index.php并把参数带入。然后WordPress会根据你设定的固定链接的格式解析参数。其实rewrite后还是用的path_info方式

但这样的方式有个缺点,就是要通过io操作来判断文件是否存在,磁盘io操作的开销是很大的,网站访问量小无所谓,访问量大的话对性能的影响不容忽视。

但如果不判断url内的文件名而直接把参数传给index.php,也会出现问题,比如图片不能显示,后台不能打开等等。


方式3

rewrite ^/archives/(.*)$ /index.php/$1;

代码的实现原理是先判断关键字,如果存在archives关键字的则把archives改写为index.php并带入参数。就相当于自动回到了path_info模式。archives是自定义的识别关键字,你也可以更改为其他文字。

相对于方法1和方法2,方法3没有磁盘IO操作,直接字符串解析即可完成。提高了效率节约了系统资源。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值