Используя SEO дружественный в PHP
Это URL-путь, который я сейчас использую:
/index.php?page=1&title=articles
Я хочу получить URL-адрес как
/index/page-1/title-articles
используя SEO удобные URL в PHP.
А как получить значение "заголовка"? Любой может помочь мне, пожалуйста.
3 ответа
Посмотрите модуль mod_rewrite и, возможно, за хорошую отправную точку, это руководство о том, как использовать его в PHP.
Вам необходимо обеспечить две вещи:
- ваше приложение правильно распечатывает новые URL, и
- Ваш веб-сервер может понять, что новые 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
Зачем? У меня есть два возражения:
index
это не информация, и я сомневаюсь, что он принадлежит в URIpage-1
, так же какtitle-articles
выглядит довольно странно. Как сindex
, вы должны спросить себя, принадлежит ли эта информация здесь. Если это так, поясните, что это ключ пары ключ-значение. Или удалите это полностью.
Таким образом, я предлагаю либо:
/‹article›/1
или же
/‹article›/page/1
или же
/‹article›/page=1
или же
/‹article›[1]
или же
/articles/‹article›/page/1
Или любая их комбинация. (В приведенном выше ‹article›
является заполнителем для реального заголовка, остальные слова являются литералами).