聯系官方銷售客服
1835022288
028-61286886
自定義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:站點使用了偽靜態
解決辦法:
將偽靜態規則刪除,或者重新編寫正確的偽靜態規則,或關閉偽靜態配置。
請教大佬這個偽靜態規則哪里出問題了?
偽靜態404必然是解析規則錯誤,花點時間去分析解析規則
不懂別亂改,用默認生成
不懂,付費修改
回復迅睿框架創始人
為何我的后臺seo界面和說明不一樣,已經升級到最新版本了。
回復迅睿框架創始人
我現在全部初始化,現在訪問出現500錯誤是規則沒有寫好嗎?
是否欄目設置里面修改后點擊后臺這個頁面就能打開呢?
回復@tangjun 查下服務器有不有配置偽靜態規則,按官方規則做,完全沒問題,如果還沒解決,可以私我。
回復@難忍 我用的phpstudy-小皮 xp.cn. 搭建的本地服務器, 目前配置的.htaccess 位于根目錄下。
其他規則且不說,rewrite.php 下面這條同我動態頁面網址是一致的,但是訪問出現404錯誤。
"show-([0-9]+)\.html" => "index.php?c=show&id=$1", //【不帶欄目路徑】模塊內容頁(show-{id}.html)
就是:/index.php?c=show&id=14打開正常,
/show-14.html 打開404錯誤。
回復@? 年少的少年。
我的規則是:欄目:目錄名稱.html
文章名:自定義地址.html
例: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 無法打開
內容和欄目規則沖突了,只能生效一個
回復@小波工作室
只保留1條規則
"([A-za-z0-9 \-\_]+)\.html" => "index.php?c=show&id=$1", //【不帶欄目路徑】模塊內容頁(show-{id}.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",
// 自定義---解析規則----結束
custom.php
function 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 這個我獨立用的是模塊字段
我用的獨立模塊,沒有改過共享的自定義
回復@王小五
出錯:Parse error: syntax error, unexpected 'xxxurl' (T_STRING), expecting '(' in F:\phpstudy_pro\WWW\config\rewrite.php on line 48
回復@tangjun
回復@tangjun 上面代碼不能放rewrite.php里面
回復@王小五
我現在是自定義文件名,字段myurl。
代碼不放錯,或者還錯,應該不會有問題的,// 自定義---解析規則----開始
// 自定義---解析規則----結束
一定要隔開,不然還是404
自定義怎么樣了?
回復@王小五
不好意思,前段時間工作忙,沒時間研究。
老是有問題,已經把網址、數據庫全部清零。這幾天有時間來重頭研究。不知道你有什么好的建議。
回復@tangjun 先弄獨立模塊的偽靜態
回復@王小五
請教一下,搜索,靜態調用有沒有什么好辦法。
這個是官方程序,搜索后是動態地址:http://127.0.0.1/index.php?s=article&c=search&keyword=關鍵詞
我想調用靜態地址:http://127.0.0.1/search/keyword-關鍵詞.html
我現在的動態搜索代碼如下:
"search\/(.+)\.html" => "index.php?s=article&c=search&keyword=$1",
試一試這個!
回復@王小五
我的偽靜態正常:
"search\/(.+)\.html" => "index.php?s=article&c=search&rewrite=$1", //【共享模塊搜索】模塊搜索頁(分頁)(search/{modname}/{param}.html)
"search\.html" => "index.php?s=article&c=search", //【共享模塊搜索】模塊搜索頁(search/{modname}.html)
"tag\/(.+)\-([0-9]+)\.html" => "index.php?s=tag&name=$1&page=$2", // tag插件分頁
"tag\/(.+)\.html" => "index.php?s=tag&name=$1", // tag插件
總結:放棄了“/欄目名/欄目名/文件名.html”這種文件路徑,只能做301跳轉,原de的網址完全照搬是行不通的。
接單各種復雜的url定義方案,需要的加下方QQ