Замена переписанных URL из полей БД в PHP - PullRequest
2 голосов
/ 10 июня 2011

Моя среда - Apache, DB - это MySQL, а язык - PHP.

Мне нужно создать промежуточный слой, который перехватывает запрос и проверяет URL-адреса, такие как "http://www.something.com/apple/ipad-2-cases/", а затем ищет БД, и где у apple и ipad-2-cases есть счетчик, такой как ниже:

Таблица продуктов

  1. p_id -> 1
  2. p_name -> "iPad"
  3. p_custom_url -> "ipad-2-case"

Таблица брендов

  1. b_id -> 2
  2. b_name -> "Яблоко"
  3. b_custom_url -> "яблоко"

и преобразовать URL в "http://www.something.com/products.php?b_id=2&p_id=1", откуда я могу взять b_id и p_id, чтобы получить соответствующую информацию о продукте.

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

Поскольку я новичок в PHP, я не совсем знаю, как этого добиться. В asp.net я использую библиотеку URL-Writer, которая использует HttpHandlers и HttpModules, чтобы перехватить текущий запрос и сделать правильные замены.

Есть ли какая-нибудь библиотека или что-то еще, что может помочь мне в этом? Или мне нужно использовать .htaccess (я знаю, что мне нужно включить mod_urlwrite на .htaccess)

Большое спасибо.

1 Ответ

2 голосов
/ 10 июня 2011

Вместо идентификаторов используйте имена.

Использование mod_rewrite в .htaccess идет от

http://www.something.com/apple/ipad-2-cases/ 

до

http://www.something.com/products.php?b=apple&p=ipad-2-cases

и найдите соответствующие идентификаторы внутри products.php

EDIT
В .htaccess создайте такое правило:

RewriteRule ^[^/]+/([A-Za-z_-]+)/([A-Za-z_-]+)$ products.php?b=$1&p=$2 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...