簡體   English   中英

htaccess 在 url 中顯示類別、子類別和帖子

[英]htaccess show category, sub category and post in url

我目前正在構建一個簡單的站點,但在使用 htaccess 時遇到了困難。

我希望我的鏈接(如服務、關於、博客等)成為類別。

然后我想從那時起有子類別,例如服務的 ppc,與團隊見面的關於和博客文章的選擇。

當您單擊 ppc 中的帖子等鏈接時,您將獲得以下 URL 結構:

站點名稱/類別名稱/子類別名稱/帖子名稱

站點名稱/服務/ppc/ppc-管理

到目前為止,我已經能夠讓網址顯示如下:

站點名稱/類別名稱/子類別名稱

或者

站點名稱/類別名稱/帖子名稱

上面兩個成功的例子表明我可以讓它同時顯示類別名稱和子類別名稱。

或者我可以將類別名稱和郵政名稱放在一起。

所以我正在努力獲得類別名稱/子類別名稱/帖子名稱

我當前的 htaccess 文件如下所示:

RewriteEngine On
RewriteBase /

RewriteRule ^services/(.*)$ catpost.php?id=$1 [L]
RewriteRule ^a-(.*)-(.*)$ archives.php?month=$1&year=$2 [L]

RewriteCond %{REQUEST_FILENAME} !-d [NC]
RewriteCond %{REQUEST_FILENAME} !-f [NC]
RewriteRule ^(.*)$ viewpost.php?id=$1 [QSA,L]

我正在努力解決這兩個問題:

1) 在 catpost.php 之前插入動態 url

-您將在 htaccess 中看到我已經修復了 catpost 重寫規則以提供服務。 但是,有沒有辦法動態更改?

這樣就可以參考服務,關於等。

2)當您查看帖子時,將子類別名稱保留在網址中,因為它指向站點名稱/類別名稱/帖子名稱

非常感謝任何幫助。 我希望這篇文章很清楚,但如果不是,請告訴我,以便我改進。

好吧,如果我是你,我會嘗試在 index.php 中處理所有這些,並通過include()引用其他頁面。

似乎(.*)/(.*)不允許作為 FIRST 規則。 如果您想將services/1重寫為services.php?id=1並將catpost/5重寫catpost.php?id=5 ,請嘗試以下操作:

RewriteRule ^a-(.*)-(.*)$ archives.php?month=$1&year=$2 [L]
RewriteRule ^([^/]+)/([^/]*)$ $1.php?id=$2 [NC,L]
  • [^/]代表除斜杠以外的任何字符

為了一起完成你的第二個任務,我嘗試過:

RewriteRule ^([^/]+)/[^/]+/([^/]*)$ $1.php?id=$2 [NC,L]

(看起來不漂亮。我的錯。)

但是它需要你在兩個斜杠之間放一些東西,比如catpost/something/2 ,如果你把它留空,你會得到 500 。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM