簡體   English   中英

如何使用數據庫中的別名和ID創建易於使用的URL?

[英]How do I create a people-friendly URL using an alias and ID from database?

我創建了一個簡單的CMS,其中每篇文章的ID,標題,別名(用於URL),內文,全文等如下:

create table articles (
    id int auto_increment primary key,
    title varchar(80),
    alias varchar(80),
    introtext text,
    fulltext text,
    published tinyint(1),
    date date
)

使用ID來訪問文章很容易,URL如下所示:

www.mysite.com/article?id=31

還是www.mysite.com/article?menuid=3&id=31

在我的數據庫中,該文章如下所示:

id:3標題:這是我的生活別名:this-is-my-life簡介:yadda ... yadda

目標是采用別名字段,並使用它來創建對人友好的URL,如下所示:

www.mysite.com/this-is-my-life.php

要么

www.mysite.com/index.php?article=this-is-my-life

要么

www.mysite.com/?article=this-is-my-life

無論如何,都使用商品ID從表中獲取別名,並且別名成為人們友好URL的基礎。

我看到這經常在CMS等Joomla和Wordpress中完成,甚至可能是禪宗購物車。 問題是如何使用.htaccess中的PHP腳本或重定向功能來完成此任務?

新信息(1月23日)

我們似乎在說蘋果與橘子,因為我不了解這應該如何工作。 也許指向簡化的演示站點的鏈接會有所幫助,在該站點中您可以看到菜單ID結構。

http://dottedi.us/test

這比最初的示例稍微復雜一些,但遵循相同的基本思想。 實時演示基於使用joomla菜單管理器來創建包括URL和可選別名的菜單項。 看起來像:

www.dottedi.us/test/index.php?option=com_k2&view=item&layout=item&id=5

Joomla和其他可能的CMS系統(Wordpress,Drupal等)具有全局配置參數,以啟用他們稱為SEO友好的URL。 我稱他們為人友善。 它將采用上述URL,並使用表中的別名字段將其轉換為對人友好的版本,因此上述URL將變為

www.dottedi.us/test/about.php(帶或不帶.php后綴)

除了使用鏈接字段作為可見的URL之外,我還可以使用別名字段,以便將鼠標懸停在它上面時看起來像about.php,但是我很困惑如何使它返回實​​時URL。 您可以在以下位置看到此內容:

http://dottedi.us/test2

我添加了一些調試輸出,如果滾動到頁面底部,可以看到這些輸出。 這有幫助嗎?

使用mod_rewrite創建漂亮的URL

為此,創建一個.htaccess文件並將其粘貼到其中。 然后將其上傳到網站根文件夾的索引。

快速提示 :您可以通過打開文本編輯器(如記事本(PC)或文本編輯(Mac))並將其另存為.htaccess來創建.htaccess文件。

<IfModule mod_rewrite.c>
  #article rewrite
  RewriteEngine On
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^(.*)$ /article.php?id=$1 [QSA]
</IfModule>

您的網址現在應如下所示:

www.mysite.com/this-is-my-life

代替:

www.mysite.com/article?id=31

我希望這有幫助!

暫無
暫無

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

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