Как создать удобный для пользователя URL-адрес с использованием псевдонима и идентификатора из базы данных?

Я создал простую CMS, в которой каждая статья имеет идентификатор, заголовок, псевдоним (для URL), introtext, fulltext и т. Д. Как:

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

Чтобы получить доступ к статье с использованием идентификатора, это просто, и URL-адрес будет выглядеть примерно так:

 www.mysite.com/article?id=31 

или, возможно, www.mysite.com/article?menuid=3&id=31

В моей базе данных статья выглядит так:

id: 3 title: Это мой псевдоним моей жизни: int-up-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 

В любом случае идентификатор статьи используется для получения псевдонима из таблицы, и псевдоним становится основой для удобного для пользователя URL.

Я вижу, что это регулярно делается на CMS, таких как Joomla и WordPress, возможно, даже zen-cart. Вопрос в том, как вы это делаете с помощью PHP-скрипта или функции перенаправления в .htaccess?

Новая информация (23 января)

Кажется, мы говорим о яблоках с апельсинами, так как я не понимаю, как это должно работать. Возможно, ссылка на упрощенный демонстрационный сайт, где вы можете увидеть структуру идентификатора меню в действии, поможет.

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 и т. Д.) Имеют глобальный параметр конфигурации, чтобы включить то, что они называют URL-адресами, ориентированными на SEO. Я называю их людьми дружелюбными. Это займет указанный выше URL-адрес и преобразует его в дружественную для людей версию, использующую поле псевдонима из таблицы, чтобы вышеуказанный URL-адрес стал

www.dottedi.us/test/about.php (с суффиксом .php или без него)

Вместо того, чтобы использовать поле ссылки в качестве видимого URL-адреса, я мог бы использовать поле псевдонима, чтобы он выглядел как about.php, когда вы наводили на него курсор, но я смущен, как заставить его возвращать живой URL-адрес. Вы можете увидеть это по адресу:

http://dottedi.us/test2

Я добавил некоторые результаты отладки, которые вы можете увидеть, если вы прокрутите страницу до конца. Помогает ли это?

Используйте mod_rewrite для создания красивых URL-адресов.

Для этого создайте файл .htaccess и вставьте его в него. Затем загрузите его в индекс корневой папки вашего сайта.

Быстрый совет : вы можете создать файл .htaccess , просто открыв текстовый редактор, например «Блокнот» (PC) или «Текстовое редактирование» (Mac), а затем сохраните его как .htaccess .

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

Теперь ваш URL должен выглядеть примерно так:

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

ВМЕСТО:

www.mysite.com/article?id=31

Надеюсь, это поможет!