использование seo, удобного для пользователя в php

это URL-адрес, который я сейчас использую:

/index.php?page=1&title=articles

Я хочу получить URL-адрес как

/index/page-1/title-articles

используя удобные для пользователя URL-адреса SEO в PHP.

А как получить значение "заголовок"? Любой может мне помочь, пожалуйста.


person Padma    schedule 18.09.2009    source источник


Ответы (3)


Ознакомьтесь с модулем mod_rewrite и, возможно, для хорошей отправной точки, это руководство о том, как использовать его в PHP.

person Cᴏʀʏ    schedule 18.09.2009

Вы должны убедиться в двух вещах:

  1. ваше приложение правильно распечатывает новые URL-адреса и
  2. ваш веб-сервер может понять эти новые URL-адреса и перезаписать их в вашу внутреннюю схему или перенаправить их обратно в ваше приложение, а ваше приложение сделает все остальное.

Первую часть можно просто выполнить с помощью

echo '<a href="/index/page-1/title-articles"> … </a>';

вместо

echo '<a href="/index.php?page=1&title=articles"> … </a>';

Вторая часть может быть выполнена либо с помощью функций сопоставления URL-адресов вашего веб-сервера (большинство веб-серверов имеют модуль, подобный mod_rewrite от Apache). С mod_rewrite перезаписать будет следующее:

RewriteEngine on
RewriteRule ^index/([^/-]+)-([^/]+)(.*) /index$3?$1=$2 [N,QSA]
RewriteRule ^index$ index.php [L]

Первое правило будет извлекать один параметр за раз и добавлять его в запрос. Второе правило, наконец, перепишет оставшийся путь URL-адреса /index на /index.php.

person Gumbo    schedule 18.09.2009

Я хочу получить URL-адрес как

/index/page-1/title-articles

Почему? У меня два возражения:

  1. index не содержит информации, и я сомневаюсь, что он относится к URI.
  2. page-1, как и title-articles, выглядит просто странно. Как и в случае с index, вы должны спросить себя, относится ли эта информация сюда. Если это так, дайте понять, что это ключ пары ключ-значение. Или вообще удалить.

Таким образом, я предлагаю либо:

/‹article›/1

or

/‹article›/page/1

or

/‹article›/page=1

or

/‹article›[1]

or

/articles/‹article›/page/1

Или любая их комбинация. (В приведенном выше примере ‹article› является заполнителем для настоящего названия, остальные слова являются литералами).

person Konrad Rudolph    schedule 18.09.2009