国产沈阳熟女视频|骚视频97网站一区日本在线视频|久1社区在线视频|综合久久国外自产拍无码精品视频|亚洲欧美Tv先锋|综合五月天网址制服丝袜在线露脸|1024欧美手机视频我不卡|日本二区欧美亚洲国产|丁香五月婷婷五月|综合 另类 一区

284292114@qq.com 中國站
行業(yè)新聞 網(wǎng)站建設(shè) 網(wǎng)絡(luò)推廣 首頁>新聞中心>網(wǎng)站建設(shè)

外貿(mào)網(wǎng)站建設(shè),PB二開調(diào)用標(biāo)題來生成URL路徑

時(shí)間:2025-06-26   訪問量:0

如題,客戶說希望URL地址就是發(fā)布文章的標(biāo)題。這是一個(gè)奇怪的需求。

為什么說奇怪了,

  • 標(biāo)題變化帶來的URL變化問題
    如果標(biāo)題改了,URL也得改,導(dǎo)致舊URL失效,造成死鏈,影響SEO,除非做好301重定向。

  • 標(biāo)題過長或含特殊字符影響URL
    標(biāo)題可能過長,含空格、標(biāo)點(diǎn)符號等,需要做良好slug化處理,否則URL會顯得冗長或混亂。

  • 重復(fù)標(biāo)題可能導(dǎo)致重復(fù)URL
    不同文章標(biāo)題重復(fù)時(shí),URL沖突,需要額外機(jī)制避免重復(fù)(如加數(shù)字后綴)。

  • 隱私及安全考慮
    有些標(biāo)題可能暴露敏感信息,直接作為URL可能帶來風(fēng)險(xiǎn)(視內(nèi)容而定)。

  • URL穩(wěn)定性
    URL最好是穩(wěn)定不變的,頻繁根據(jù)標(biāo)題變動會影響SEO權(quán)重的積累。


都2025年了,SEO對純技術(shù)上的要求并不高,內(nèi)容為王的時(shí)候,還在去做技術(shù)層面的東西,實(shí)在沒有必要。

我的一個(gè)網(wǎng)站用7天時(shí)間就上了谷歌首頁,至今已經(jīng)5年左右了。排名沒有掉過。當(dāng)時(shí)做的時(shí)候從來沒有去考慮過SEO方面的問題,只是精心設(shè)計(jì)了一下首頁的TDK,然后連續(xù)發(fā)了一周的文章,排名就上去了,后面就再也沒有管過那個(gè)網(wǎng)站,排名一直在首頁前三。

甚至從很多所謂的SEO優(yōu)化者的角度來看,我的那個(gè)站可能SEO打分的話,最多40分,因?yàn)槲以谧瞿莻€(gè)站的時(shí)候,時(shí)間很匆忙,做網(wǎng)站只用了一天,然后什么title, Alt, h2標(biāo)簽,這些在SEO人員眼中很神奇的東西,我完全沒有考慮過。

話不多說了,開工。

文章詳情的話是由:ContentController.php控制器管理的。所以我們打開這個(gè)文章,添加了個(gè)過濾的函數(shù)。

        /*** 將字符串轉(zhuǎn)換為URL友好的slug格式 20250626 ,小寶*/
    private function slugifyadd($text)
{
    // 先把 HTML 實(shí)體轉(zhuǎn)換為對應(yīng)字符
    $text = html_entity_decode($text, ENT_QUOTES | ENT_HTML5, 'UTF-8');

    // 替換非字母數(shù)字字符為橫線(此時(shí)單引號是字符 ',會被替換成橫線)
    $text = preg_replace('/[^A-Za-z0-9]+/u', '-', $text);

    // 合并多個(gè)橫線為一個(gè)
    $text = preg_replace('/-+/', '-', $text);

    // 去掉首尾橫線
    $text = trim($text, '-');

    // 轉(zhuǎn)成小寫(可選)
   // $text = strtolower($text);

    return $text ?: 'n-a';
}


然后我們在文章增加的函數(shù)中

    // 文章增加
    public function add()
    {
        if ($_POST) {

            // 獲取數(shù)據(jù)
            $scode = post('scode');
            $subscode = post('subscode');
            $title = post('title');
            $titlecolor = post('titlecolor');
            $subtitle = post('subtitle');
            $filename = trim(post('filename'), '/');
            $author = post('author');
            $source = post('source') ?: '本站';
            $outlink = post('outlink');
            $date = post('date');
            $ico = post('ico');
            $pics = post('pics');

可以看到有這樣一行代碼, filename就是網(wǎng)站的URL地址。

  $filename = trim(post('filename'), '/');

然后我們將他修改成:

 $filename = $this->slugifyadd($title);

在后面的文章修改中也有同樣的一處。

   // 文章修改
    public function mod()

在這個(gè)函數(shù)中,也同樣修改一下。

這樣就實(shí)現(xiàn)了發(fā)布新聞或者修改文章的時(shí)候,URL地址就自動獲取標(biāo)題并過濾掉符號后用橫線連接成URL。

如果我們想保留這個(gè)功能,又想自定義URL怎么辦呢?

我們可以改成這樣

// filename允許用戶手動填寫,若為空則用title生成slug
             $filename = trim(post('filename'), '/');
             if (!$filename && $title) {
                $filename = $this->slugifyadd($title); // 調(diào)用同一個(gè)函數(shù)
             }


這樣的話,如果用戶發(fā)布文章的時(shí)候,可以自定義URL地址,此時(shí)就不會讀取標(biāo)題作為URL了。

如果需要用標(biāo)題作為URL就需要?jiǎng)h除掉URL中的自定義地址。

這就有一個(gè)問題就是,如果我發(fā)布了一篇文章,他會生成一個(gè)URL地址并寫入到filename中,當(dāng)我想必這篇文章的時(shí)候,標(biāo)題我是修改了,實(shí)際上URL處會有這前的標(biāo)題生成的URL,此時(shí)如果不刪除掉之前生成的URL,那么修改文章后,就不會生成新的標(biāo)題URL,就還會是原來的標(biāo)題生成的URL。

而上面一開始的那種方法 ,就是不管是新增和修改,都是讀取最新的標(biāo)題作為URL的。


服務(wù)咨詢
1對1咨詢,專業(yè)客服為您解疑答惑
聯(lián)系銷售
15899750475
在線咨詢
聯(lián)系在線客服,為您解答所有的疑問