Используя SEO дружественный в PHP

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

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

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

/index/page-1/title-articles

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

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

3 ответа

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

Вам необходимо обеспечить две вещи:

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

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

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

вместо

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

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

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

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

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

/index/page-1/title-articles

Зачем? У меня есть два возражения:

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

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

/‹article›/1

или же

/‹article›/page/1

или же

/‹article›/page=1

или же

/‹article›[1]

или же

/articles/‹article›/page/1

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

Другие вопросы по тегам