自定义url成功,但伪静态404错误
网站栏目和页面都是自定义网址,url规则里面都是按照需求修改完毕,
修改config/custom.php
现在前台各个链接都是自定义静态链接,但是点击打开后所有自定义链接都是404错误。
各段代码请见附件
rewrite.php添加后所有内容为:
问题:我的动态链接是:
index.php?c=category&id=$1&page=$2
而不是:
index.php?c=category&dir=$1&page=$2
根目录下:.htaccess修改如下
404错误没有显示自己的404页面,而是显示phpstudy的404页面:
原因5:站点使用了伪静态
解决办法:
将伪静态规则删除,或者重新编写正确的伪静态规则,或关闭伪静态配置。
请教大佬这个伪静态规则哪里出问题了?
回复迅睿框架创始人 为何我的后台seo界面和说明不一样,已经升级到最新版本了。
"show-([0-9]+)\.html" => "index.php?c=show&id=$1", //【不带栏目路径】模块内容页(show-{id}.html)就是:/index.php?c=show&id=14打开正常,/show-14.html 打开404错误。
例:http://127.0.0.1/index.php?c=category&id=1&page=2规则:"([A-za-z0-9 \-\_]+)-([0-9]+)\.html" => "index.php?c=category&id=$1&page=$2", //【不带栏目路径】模块栏目列表(分页)(list-{dirname}-{page}.html)例:http://127.0.0.1/index.php?c=show&id=14
规则:"([A-za-z0-9 \-\_]+)\.html" => "index.php?c=show&id=$1", //【不带栏目路径】模块内容页(show-{id}.html)例:http://127.0.0.1/index.php?c=category&id=3规则:"([A-za-z0-9 \-\_]+)\.html" => "index.php?c=category&id=$1", //【不带栏目路径】模块栏目列表(list-{dirname}.html)目前:http://127.0.0.1/index.php?c=show&id=14 可以打开,但http://127.0.0.1/show-14.html 无法打开
内容和栏目规则冲突了,只能生效一个
自定义地址.html 和 id.html 打开都是404错误,感觉这个rewrite.php不起作用。
// 判断url是否是来自自定义函数if (CMSURI) { $myfile = WRITEPATH.'mid/'.md5(CMSURI).'.txt'; if (is_file($myfile)) { $id = file_get_contents($myfile); if ($id) { return [ CMSURI => 'index.php?c=show&id='.$id, // 这里写内容的地址 ]; } }}// 自定义---解析规则----结束 "([a-z]+)\/([0-9]+)" => "index.php?c=show&field=yuming&value=$1", // 自定义---解析规则----结束
// 共享栏目测试规则---解析规则----开始 "([A-za-z0-9 \-\_]+)\.html" => "index.php?c=category&dir=$1", //【共享栏目测试规则】模块栏目列表({dirname}.html) "([A-za-z0-9 \-\_]+)-([0-9]+)\.html" => "index.php?c=category&dir=$1&page=$2", //【共享栏目测试规则】模块栏目列表(分页)({dirname}-{page}.html) "([0-9]+)-([0-9]+)\.html" => "index.php?c=show&id=$1&page=$2", //【共享栏目测试规则】模块内容页(分页)({id}-{page}.html) // 共享栏目测试规则---解析规则----结束custom.phpfunction xxxurl($data) { $author = isset($data['_id']) ? $data['_id'] : $data['id']; $url = "/".$id; dr_mkdirs(WRITEPATH.'myid/'); // 创建id缓存存储目录 file_put_contents(WRITEPATH.'myid/'. md5(trim($url, '/')).'.txt', $data['id']); // 将id号存储缓存文件 return $url; //返回我自己的}custom.php
function xxxurl($data) {
$author = isset($data['_id']) ? $data['_id'] : $data['id'];
$url = "xx/".$id;
dr_mkdirs(WRITEPATH.'myid/'); // 创建id缓存存储目录
file_put_contents(WRITEPATH.'myid/'. md5(trim($url, '/')).'.txt', $data['id']); // 将id号存储缓存文件
return $url; //返回我自己的
}
// 自定义---解析规则(config/rewrite.php )----结束
"([a-z]+)\/([0-9]+)" => "index.php?c=show&field=id&value=$1",
// 自定义---解析规则(config/rewrite.php )----结束
xx 这个你自己改成你想要的也可以不要!id 可以改成你需要的字段
field=id 这个我独立用的是模块字段
我用的独立模块,没有改过共享的自定义
function xxxurl($data) { $author = isset($data['_myurl']) ? $data['_myurl'] : $data['myurl']; $url = "xx/".$myurl; dr_mkdirs(WRITEPATH.'myid/'); // 创建id缓存存储目录 file_put_contents(WRITEPATH.'myid/'. md5(trim($url, '/')).'.txt', $data['id']); // 将id号存储缓存文件 return $url; //返回我自己的 } "([A-za-z0-9 \_\-]+)\.html" => "index.php?c=show&field=myurl&value=$1",出错:Parse error: syntax error, unexpected 'xxxurl' (T_STRING), expecting '(' in F:\phpstudy_pro\WWW\config\rewrite.php on line 48function xxxurl($data) { $author = isset($data['_myurl']) ? $data['_myurl'] : $data['myurl']; $url = "xx/".$myurl; dr_mkdirs(WRITEPATH.'myid/'); // 创建id缓存存储目录 file_put_contents(WRITEPATH.'myid/'. md5(trim($url, '/')).'.txt', $data['id']); // 将id号存储缓存文件 return $url; //返回我自己的 }tangjun 上面代码不能放rewrite.php里面<form action="{SITE_URL}index.php" method="get" target="_blank"> <button class="button_search"></button> <input type="hidden" name="s" value="article"> <input type="hidden" name="c" value="search"> <input name="keyword" id="s" type="text" value="搜索内容..." onclick="this.value = '';"> </form>试一试这个!
"tag\/(.+)\.html" => "index.php?s=tag&name=$1", // tag插件