自定義url成功,但偽靜態(tài)404錯(cuò)誤
網(wǎng)站欄目和頁面都是自定義網(wǎng)址,url規(guī)則里面都是按照需求修改完畢,
修改config/custom.php
現(xiàn)在前臺各個(gè)鏈接都是自定義靜態(tài)鏈接,但是點(diǎn)擊打開后所有自定義鏈接都是404錯(cuò)誤。
各段代碼請見附件
rewrite.php添加后所有內(nèi)容為:
問題:我的動(dòng)態(tài)鏈接是:
index.php?c=category&id=$1&page=$2
而不是:
index.php?c=category&dir=$1&page=$2
根目錄下:.htaccess修改如下
404錯(cuò)誤沒有顯示自己的404頁面,而是顯示phpstudy的404頁面:
原因5:站點(diǎn)使用了偽靜態(tài)
解決辦法:
將偽靜態(tài)規(guī)則刪除,或者重新編寫正確的偽靜態(tài)規(guī)則,或關(guān)閉偽靜態(tài)配置。
請教大佬這個(gè)偽靜態(tài)規(guī)則哪里出問題了?
偽靜態(tài)404必然是解析規(guī)則錯(cuò)誤,花點(diǎn)時(shí)間去分析解析規(guī)則
開源是一種精神,但不是義務(wù),幫忙是情分,不幫也不要抱怨,建議大家多研究代碼、多閱讀代碼、多翻閱社區(qū)歷史問題!
不懂別亂改,用默認(rèn)生成
不懂,付費(fèi)修改
回復(fù)迅??蚣軇?chuàng)始人
為何我的后臺seo界面和說明不一樣,已經(jīng)升級到最新版本了。
回復(fù)迅睿框架創(chuàng)始人
我現(xiàn)在全部初始化,現(xiàn)在訪問出現(xiàn)500錯(cuò)誤是規(guī)則沒有寫好嗎?
是否欄目設(shè)置里面修改后點(diǎn)擊后臺這個(gè)頁面就能打開呢?
回復(fù)@tangjun 查下服務(wù)器有不有配置偽靜態(tài)規(guī)則,按官方規(guī)則做,完全沒問題,如果還沒解決,可以私我。
回復(fù)@難忍 我用的phpstudy-小皮 xp.cn. 搭建的本地服務(wù)器, 目前配置的.htaccess 位于根目錄下。
其他規(guī)則且不說,rewrite.php 下面這條同我動(dòng)態(tài)頁面網(wǎng)址是一致的,但是訪問出現(xiàn)404錯(cuò)誤。
"show-([0-9]+)\.html" => "index.php?c=show&id=$1", //【不帶欄目路徑】模塊內(nèi)容頁(show-{id}.html)
就是:/index.php?c=show&id=14打開正常,
/show-14.html 打開404錯(cuò)誤。
回復(fù)@? 年少的少年。
我的規(guī)則是:欄目:目錄名稱.html
文章名:自定義地址.html
例:http://127.0.0.1/index.php?c=category&id=1&page=2
規(guī)則:"([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
規(guī)則:"([A-za-z0-9 \-\_]+)\.html" => "index.php?c=show&id=$1", //【不帶欄目路徑】模塊內(nèi)容頁(show-{id}.html)
例:http://127.0.0.1/index.php?c=category&id=3
規(guī)則:"([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 無法打開
內(nèi)容和欄目規(guī)則沖突了,只能生效一個(gè)
回復(fù)@小波工作室
只保留1條規(guī)則
"([A-za-z0-9 \-\_]+)\.html" => "index.php?c=show&id=$1", //【不帶欄目路徑】模塊內(nèi)容頁(show-{id}.html)
自定義地址.html 和 id.html 打開都是404錯(cuò)誤,感覺這個(gè)rewrite.php不起作用。
// 判斷url是否是來自自定義函數(shù)
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, // 這里寫內(nèi)容的地址
];
}
}
}
// 自定義---解析規(guī)則----結(jié)束
"([a-z]+)\/([0-9]+)" => "index.php?c=show&field=yuming&value=$1",
// 自定義---解析規(guī)則----結(jié)束
// 共享欄目測試規(guī)則---解析規(guī)則----開始 "([A-za-z0-9 \-\_]+)\.html" => "index.php?c=category&dir=$1", //【共享欄目測試規(guī)則】模塊欄目列表({dirname}.html) "([A-za-z0-9 \-\_]+)-([0-9]+)\.html" => "index.php?c=category&dir=$1&page=$2", //【共享欄目測試規(guī)則】模塊欄目列表(分頁)({dirname}-{page}.html) "([0-9]+)-([0-9]+)\.html" => "index.php?c=show&id=$1&page=$2", //【共享欄目測試規(guī)則】模塊內(nèi)容頁(分頁)({id}-{page}.html) // 共享欄目測試規(guī)則---解析規(guī)則----結(jié)束custom.php
function xxxurl($data) {
$author = isset($data['_id']) ? $data['_id'] : $data['id'];
$url = "/".$id;
dr_mkdirs(WRITEPATH.'myid/'); // 創(chuàng)建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/'); // 創(chuàng)建id緩存存儲目錄
file_put_contents(WRITEPATH.'myid/'. md5(trim($url, '/')).'.txt', $data['id']); // 將id號存儲緩存文件
return $url; //返回我自己的
}
// 自定義---解析規(guī)則(config/rewrite.php )----結(jié)束
"([a-z]+)\/([0-9]+)" => "index.php?c=show&field=id&value=$1",
// 自定義---解析規(guī)則(config/rewrite.php )----結(jié)束
xx 這個(gè)你自己改成你想要的也可以不要!id 可以改成你需要的字段
field=id 這個(gè)我獨(dú)立用的是模塊字段
我用的獨(dú)立模塊,沒有改過共享的自定義
回復(fù)@王小五
function xxxurl($data) { $author = isset($data['_myurl']) ? $data['_myurl'] : $data['myurl']; $url = "xx/".$myurl; dr_mkdirs(WRITEPATH.'myid/'); // 創(chuàng)建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",出錯(cuò):Parse error: syntax error, unexpected 'xxxurl' (T_STRING), expecting '(' in F:\phpstudy_pro\WWW\config\rewrite.php on line 48
回復(fù)@tangjun
function xxxurl($data) { $author = isset($data['_myurl']) ? $data['_myurl'] : $data['myurl']; $url = "xx/".$myurl; dr_mkdirs(WRITEPATH.'myid/'); // 創(chuàng)建id緩存存儲目錄 file_put_contents(WRITEPATH.'myid/'. md5(trim($url, '/')).'.txt', $data['id']); // 將id號存儲緩存文件 return $url; //返回我自己的 }回復(fù)@tangjun 上面代碼不能放rewrite.php里面
回復(fù)@王小五
我現(xiàn)在是自定義文件名,字段myurl。
代碼不放錯(cuò),或者還錯(cuò),應(yīng)該不會有問題的,// 自定義---解析規(guī)則----開始
// 自定義---解析規(guī)則----結(jié)束
一定要隔開,不然還是404
自定義怎么樣了?
回復(fù)@王小五
不好意思,前段時(shí)間工作忙,沒時(shí)間研究。
老是有問題,已經(jīng)把網(wǎng)址、數(shù)據(jù)庫全部清零。這幾天有時(shí)間來重頭研究。不知道你有什么好的建議。
回復(fù)@tangjun 先弄獨(dú)立模塊的偽靜態(tài)
回復(fù)@王小五
請教一下,搜索,靜態(tài)調(diào)用有沒有什么好辦法。
這個(gè)是官方程序,搜索后是動(dòng)態(tài)地址:http://127.0.0.1/index.php?s=article&c=search&keyword=關(guān)鍵詞
我想調(diào)用靜態(tài)地址:http://127.0.0.1/search/keyword-關(guān)鍵詞.html
我現(xiàn)在的動(dòng)態(tài)搜索代碼如下:
<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="搜索內(nèi)容..." onclick="this.value = '';"> </form>"search\/(.+)\.html" => "index.php?s=article&c=search&keyword=$1",
試一試這個(gè)!
回復(fù)@王小五
我的偽靜態(tài)正常:
"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插件
總結(jié):放棄了“/欄目名/欄目名/文件名.html”這種文件路徑,只能做301跳轉(zhuǎn),原de的網(wǎng)址完全照搬是行不通的。
接單各種復(fù)雜的url定義方案,需要的加下方QQ