Я создал простую 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
Надеюсь, это поможет!