Я написал свой сайт с использованием PHP, и, к сожалению, в настоящее время профиль Artist выглядит следующим образом:
website.com/profiles.php?id=xxx
Таким образом, я могу получить идентификатор и запросить базу данных.
Тем не менее, теперь художники просят URL-адрес website.com/artistname. Как и Facebook и Myspace, я думаю.
Мне все же нужно иметь возможность установить идентификатор художников, так что я могу запросить базу данных.
Я предполагаю, что мне придется использовать mod_rewrite, а также запустить функцию php, но я точно не знаю, как это сделать!
Я потратил последний день на поиск в Интернете, чтобы найти что-то подобное, но я не могу найти то, что хочу!
Если у кого-нибудь есть идеи о том, как я могу это сделать, или примеры, которые помогут мне, это было бы здорово!
благодаря
Вы можете использовать URL-адрес «slug», в котором запись имеет уникальное имя, то есть:
id name slug 001 Stack Overflow stack-overflow
то вы можете выполнить запрос, например:
SELECT `fields` FROM `table` WHERE `slug`='$slug'
где slug – это значение из URL-адреса.
Есть альтернативы, поскольку я уверен, что они будут предоставлены.
Вы можете использовать ответ Gumbo, но у вас также есть один возможный ярлык:
Вы также можете перенаправить URL / artistname на /profiles.php?id=xxx с помощью обработчика 404
Вот как вы это сделаете:
Хорошая вещь об этом методе заключается в том, что вам не нужно включать mod_rewrite. (если это проблема)
Если вам не нужен ID в URL, имена артистов должны быть новым ID и, таким образом, уникальными.
В этом случае вы можете сделать следующее в файле .htaccess в корневом каталоге вашего документа, чтобы переписать /<artistname>
внутренне в /profiles.php?name=<artistname>
:
RewriteEngine on RewriteRule ^([az]+)$ profiles.php?name=$1
Здесь имя исполнителя также ограничивается только буквенными буквами. Для других символов (особенно .
И /
) вы должны учитывать, чтобы не допускать конфликты с существующими файлами (например, profiles.php
). И если вы выведете имена артистов URL из их настоящих имен, не забудьте также разрешить конфликты. В этом случае вам все равно понадобится искусственный идентификатор, чтобы сделать URL-адрес уникальным.
Во-первых, вам нужно изменить таблицу своих художников, добавив новый столбец для определения псевдонима для артистов, например, «david-matthews-band», создайте индекс, уникальный для предотвращения путаницы с художниками-омонимами.
Вам нужно отредактировать файл profile.php, чтобы найти художников по псевдониму, например website.com/profile.php?q=david-matthews-band
Создайте правило перезаписи для преобразования website.com/profile/david-mattews-band на website.com/profile.php?q=david-matthews-band:
RewriteEngine On RewriteRule ^profile/* profile.php?q=$1