Nginx环境下Oneindex去除网址内的“?”

为什么要去除/?/

由于网站的发展,数据量会逐渐增多,更换起来下载源会非常麻烦,不可否认可以在mysql里面批量替换,但是本质上一劳永逸的方法是

1、使用固定域名和链接去对应文件源,我设置了3个源d.shikey.com

2、如果Onedrive挂了的话,直接将文件传到另外的服务器上,域名解析过去即可。

这样会非常有利于用户体验,减少下载地址无效的尴尬。

Oneindex简介

具体是什么,可以在本站搜索,当然也可以直接百度。是个很不错的Onedrive目录显示程序。

我的环境

Wdcp集成环境,没有用宝塔,如果是宝塔的话会更加简单。N+A模式,当然只有Nginx估计在正在工作。

《Nginx环境下Oneindex去除网址内的“?”》

修改方法

1、找到网站配置文件,一般为d.shikey.com.conf,nginx的配置文件

2、加入以下代码

if (!-f $request_filename){
        set $rule_0 1$rule_0;
}
if (!-d $request_filename){
        set $rule_0 2$rule_0;
}
if ($rule_0 = "21"){
        rewrite ^/(.*)$ /index.php?/$1 last;
}

3、保存配置文件,重启web,如果是wdcp搭建的,还需要先修改,再给文件添加可读不可写入的隐藏属性。

#宝塔面板无需设置,文件地址请自行配置
chattr +i /www/xxx/xxx/d.shikey.com.conf

4、在oneindex的管理后台内,把/?/选项关掉

《Nginx环境下Oneindex去除网址内的“?”》

5、Apache环境配置官方文档就有,这里就不说了。

6、其他方法(本人未测试)

#在server { }内添加:80和443都需要
location / {
  try_files $uri $uri/ /index.php?/$uri;
}


#全局申明,否则图片不能显示
#location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
  #{
  #  expires      30d;
  #}
  1. 山涧小石说道:

    UPDATE wp_posts SET post_content = REPLACE( post_content, ' d.shikey.com/?/', 'd.shikey.com/' )
    批量更新文章表内的URL,不同结构的数据需要自行替换

发表回复