大家都知道,Discuz的Archiver功能可以让看帖时页面更简洁,并且对搜索引擎更友好。
但是,Discuz论坛的Archiver却一直有个问题:
这样的页面会显示404错误
https://www.fuyeba.cn/archiver/fid-38.html
但是如果把网址改成
https://www.fuyeba.cn/archiver/?fid-38.html
就可以显示了,真的是神奇的问号。
网上看了很多帖子,都是老版本的解决方式,按照他们的方法更改之后发现还是没办法解决问题。
而且我的服务器是nginx的,相关的帖子本来就比较少
于是我去找了一下nginx的rewrite正则表达式写法,对照官方后台的rewrite rule
rewrite ^([^\.]*)/(fid|tid)-([0-9]+)\.html$ $1/archiver/index.php?action=$2&value=$3 last;
发现好像写法上并没有什么问题啊。
然后我把rewrite rule更改了一下进行测试
rewrite ^([^\.]*)/(fid|tid)-([0-9]+)\.html$ $1 last;
结果发现跳转到https://www.fuyeba.cn/archiver/
证明nginx判断的$1变量是https://www.fuyeba.cn/archiver/,而不是https://www.fuyeba.cn/
那这个rewrite rule的写法就有问题了,需要进行修改,要么在前面加上/archiver,变成
rewrite ^([^\.]*)/archiver/(fid|tid)-([0-9]+)\.html$ $1/archiver/index.php?action=$2&value=$3 last;
要么去掉后面的/archiver,变成
rewrite ^([^\.]*)/(fid|tid)-([0-9]+)\.html$ $1/index.php?action=$2&value=$3 last;
改好之后需要重启一下nginx服务
service nginx restart
然后测试一下,果然正常了,估计我的网站权重就要提上去了!
转载自:https://www.fuyeba.cn/thread-1072-1-1.html