Как преобразовать строку запроса PHP в URL-адрес с косой чертой? - PullRequest
7 голосов
/ 29 ноября 2010

Я довольно опытный программист, но когда дело доходит до RegEx и переписывания, я всего n00b.Я хочу преобразовать URL-адрес из

http://www.example.com/lookup.php?id=1

в

http://www.example.com/lookup/1/item/

, где «элемент» относится к имени элемента в базе данных, которая просматривается.

Я использую LAMP (Linux, Apache, MySQL, PHP) и не могу понять, как конвертировать URL-адреса, чтобы они были оптимизированы для SEO.

Ответы [ 3 ]

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

Простой пример .htaccess:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^lookup/([a-z0-9\-]+)/item/?$ /lookup.php?id=$1
</IfModule>

Это будет соответствовать любой буквенно-цифровой (также будет распознавать черточки) строке любой длины как 'id'. Вы можете ограничить это числовым значением, изменив регулярное выражение на ([0-9]+).

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^lookup/([a-z0-9\-]+)/([a-z0-9\-]+)/?$ /lookup.php?id=$1&view=$2
</IfModule>

Этот будет соответствовать /lookup/123/some-text/ до /lookup.php?id=123&view=some-text

2 голосов
/ 29 ноября 2010

Посмотрите на URL переписывания htaccess!:)

Вот ваш пример:

RewriteRule ^lookup/(\d+)/(.*)$ /lookup.php?id=$1&name=$2

Когда вы обращаетесь к lookup/123/my-product/, он вызывает внутренний файл lookup.php?id=123&name=my-product.

0 голосов
/ 29 ноября 2010

Хотите перенаправить со старого URL на новый? Или вы хотите прочитать эти «дружественные» URL-адреса, а затем вести себя как старый URL-адрес?

Если это последнее, попробуйте взглянуть на Net_URL_Mapper как способ достаточно легко разобрать и перенаправить эти ссылки.

...