Перезапись URL с помощью PHP MySQL .htaccess & GET - PullRequest
1 голос
/ 10 ноября 2010

У меня есть база данных MySQL с 5000 элементов.Таблица структурирована как

id
product-name
content
product-url

Вы можете перейти на страницу определенного продукта, перейдя на www.site.com/продукты / index.php? ID = 123.Файл index.php использует PHP для получения идентификатора для поиска в базе данных MySQL и возврата соответствующего имени продукта и содержимого.

Как сделать так, чтобы вместо www.site.com/products/index.php?id=123 URL-адрес переписывался или перенаправлялся на www.site.com/products/product-url?Если я сделаю это с .htaccess, сможет ли файл index.php узнать, какой идентификатор использовать для поиска URL-адреса продукта, если идентификатор не указан в URL-адресе?Или есть какой-то способ сопоставить URL-адреса с помощью PHP и MySQL?

(Я новичок в этом вопросе, поэтому любая помощь будет высоко оценена. Спасибо.)

1 Ответ

4 голосов
/ 10 ноября 2010

Вы можете использовать .htaccess и RewriteRule. Следующее перенаправит URL-адрес SEO на index.php с $_GET['product-url']. Вам нужно будет изменить свой код, чтобы найти продукт id или использовать product-url напрямую. Оба значения должны быть уникальными в вашей таблице продуктов.

RewriteEngine On
RewriteBase /

# redirect product page from SEO URL
RewriteRule ^products/([\w\d-_]+)/?$ products/index.php?product-url=$1 [L]

Примечание: Я сделал product_url, чтобы разрешить только буквы, цифры, тире и подчеркивания. Я предлагаю такое ограничение. Кроме того, косая черта является необязательной. Более того, это не приведет к повторному добавлению строки запроса. Если вам нужно, вы можете добавить флаг QSA в RewriteRule.

...