J5伪静态
Public/news/.rewrite的地址重写配置:
<?php
return [
[
'file' => 'index.php',
'params' => ['type' => 'list'],
'query' => ['category'],
'pattern' => '/^list-([0-9]+).html$/',
],
[
'file' => 'index.php',
'params' => ['type' => 'list'],
'query' => ['category', 'page'],
'pattern' => '/^list-([0-9]+)-([0-9]+).html$/',
],
[
'file' => 'index.php',
'params' => ['type' => 'detail'],
'query' => ['id'],
'pattern' => '/^detail-([a-z0-9-]+).html$/',
],
];
上述代码中,我们可以看到文件内容其实是一个php文件并返回了一个数组,共有三条地址重写规则:
第一条匹配/news/list-数字.html这种形式的地址,其中匹配到的内容定义为category的参数值,合并params的预设参数值,一并在index.php文件中解析。
第二条匹配/news/list-数字-数字.html这种形式的地址,其中匹配到的第一个内容定义为category的参数值,第二个内容定义为page的参数值,合并params的预设参数值,一并在index.php文件中解析。
第三条匹配/news/detail-字母或数字.html这种形式的地址,其中匹配到的内容定义为slug的参数值,合并params的预设参数值,一并在index.php文件中解析。
所有模板链接都要修改。包括列表页、内容页、调用模板、分页JS文件等。
?type=list&category={$id}替换为list-{$id}.html
?type=detail&id={$id}替换为detail-{$id}.html
内容页也可以替换成?type=detail&id={$id}替换为{$id}.html
上面的'pattern' => '/^detail-([a-z0-9-]+).html$/',
要改成'pattern' => '/^([a-z0-9-]+).html$/',
搜索链接伪静态
/Public/search/common/diplomat/index.php文件17行:
return $this -> getParam('full_host') . '/' . $item -> un_name . '/?type=detail&id=' . urlencode($item -> id);
替换为
return $this -> getParam('full_host') . '/' . $item -> un_name . '/' . urlencode($item -> id). '.html';