公告栏
这是一个公告栏...目前还没有啥公告...
Xiuno BBS去除url中.htm的后缀(伪静态)
-
第一步
修改nginx伪静态
兼容包括.htm的链接,带有.htm的链接也可以正常访问
location ~* ^/(?!admin) { rewrite ^/([^/]+)$ /index.php?$1.htm$2 last; } location ~ ^/admin { rewrite "^(.*)/([^/]+)$" $1/index.php?$2.htm$3 last; }
第二步
如果不需要xn自动转换链接,可跳过这一步
下载附件中的文件,放入任意插件的hook目录中
原理:去除
url()
函数中的url_rewrite_on = 1
的判断在url后添加.htm
后缀,当然你也可以自行增加url_rewrite_on = 4
的判断以下为url函数的注释,分别为
0,1,2,3
/* url("thread-create-1.htm"); 根据 $conf['url_rewrite_on'] 设置,返回以下四种格式: ?thread-create-1.htm thread-create-1.htm ?/thread/create/1 /thread/create/1 */
修改完成后清理缓存即可!
model_url_start.php
文件<?php exit; $r = $path = $query = ''; if(strpos($url, '/') !== FALSE) { $path = substr($url, 0, strrpos($url, '/') + 1); $query = substr($url, strrpos($url, '/') + 1); } else { $path = ''; $query = $url; } if($conf['url_rewrite_on'] == 0) { $r = $path . '?' . $query . '.htm'; } elseif($conf['url_rewrite_on'] == 1) { $r = $path . $query; } elseif($conf['url_rewrite_on'] == 2) { $r = $path . '?' . str_replace('-', '/', $query); } elseif($conf['url_rewrite_on'] == 3) { $r = $path . str_replace('-', '/', $query); } // 附加参数 if($extra) { $args = http_build_query($extra); $sep = strpos($r, '?') === FALSE ? '?' : '&'; $r .= $sep.$args; } return $r;
Copyright AiINK.CN All Rights Reserved Since 2023