最近再使用WordpressToTypecho插件将wp转成了typecho后,想用Typecho永久链接的功能复刻下Wordpress那种带?参数的固定链接,如?p=123这样的格式,但测试发下改完后点文章还是分类啥的都还是在首页,也就是说这种带有?的链接格式直接就是不支持。那么对于Wordpress转投Typecho的用户来说,用这种格式转投Typecho就等于所有文章链接都换了,收录啥的直接受影响,那么有没有什么办法呢?
于是乎打开Github开始反馈,最终在sy-records大佬的帮助下找到了解决办法。
在typecho/var/Typecho/Request.php文件337行左右找到如下代码:
if ($pos = strpos($requestUri, '?')) {
$requestUri = substr($requestUri, 0, $pos);
} 然后将其改为
if (!strpos($requestUri, '?p=')&&!strpos($requestUri, '?cat=')&&!strpos($requestUri, '?page_id=')) {
if ($pos = strpos($requestUri, '?')) {
$requestUri = substr($requestUri, 0, $pos);
}
}其实就是针对自己的这三种?p=、?cat=、?page_id=参数屏蔽了typecho那个过滤就行了,当然如果你得参数如果和typecho本身用到的参数重叠的话这样改可能有些问题(大多情况不会哈)。
下图是对应的永久链接设置