• доступно о веб-разработке
10.12.2012 PHP, Wordpress, Движки, Сервер, Технологии ,

Красивые адреса ссылок в скриптах на PHP

Приступив к написанию своих собственных скриптов на PHP, вы столкнулись с тем, что адреса создаваемых страниц сайта получаются несколько своеобразными. Поэтому давайте научимся делать красивые адреса. Такие, будто бы сайт у нас генерируется не динамически, а сверстан из статических страниц.

Чтобы вы сразу поняли, о чём идет речь, поясню.

Ваши PHP-страницы могут иметь вид:

http://site.ru/index.php

http://site.ru/blog.php

http://site.ru/index.php?action=blog&id=1

Вы могли видеть подобные адреса раньше в соц.сети ВКонтакте.

Но такие адреса не очень по нраву Поисковым Системам.

Куда как более запоминающимися и приятными выглядят следующие адреса:

http://vk.com/feed

http://vk.com/friends

http://vk.com/settings

Но как добиться этого в работе?

Давайте посмотрим на примере, как это работает.

Вам известно, что обработкой запросов занимается веб-сервер.

Веб-сервер работает согласно файлу конфигурации, содержащему в себе директивы.

Пока говорим о простом случае — о веб-сервере Apache.

Так вот, по умолчанию, есть возможность изменять директивы по ходу для каждой конкретной папки.

Для этого служит файл под именем .htaccess.

Положив его, допустим, рядом с index.php, в ту же папку, мы можем задавать директивы, которые будут действовать на эту папку и на все подпапки (если в них директивы не будут переопределены в своих файлах .htaccess).

Разнообразных правил множество, нас же сейчас интересует только изменение вида uri (Universal Resource Identificator — часть адреса после адреса сайта, http://site.ru/page.html).

Подразумевается, что модуль mod_rewrite включен и работает в Apache по умолчанию.

Тогда содержимое файла .htaccess  может выглядеть так:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [L]

О чём говорит это правило?

1. Включает модуль переписывания URI.

2. Если запрашиваемые файл или директория не найдены (например, вы вызываете /some_page.html, а физически этой страницы на сервере нет).

3. То все запросы переадресовываются на index.php.

Далее в index.php уже идет обработка запроса.

Ловится параметр из серверного окружения $_SERVER и обрабатывается.

Как включить «красивые адреса» в WordPress?

В Панели управления найти в меню «Настройки», затем «Постоянные ссылки / ЧПУ».

ЧПУ — это Человеко-Понятный УРЛ.

То есть не такой:

http://market.yandex.ru/guru.xml?CMD=-RR=0,0,0,0-PF=2140131888~GT~sel~0.000000-PF=2140131887~LT~sel~3.229244-PF=2142616907~EQ~sel~x1652021084-PF=2142616905~EQ~sel~x5943904-VIS=70-CAT_ID=140982-EXC=1-PG=10&hid=90633

А такой:

Плагины WordPress

В случае Яндекса ничего плохого нет — иначе на Маркете не отфильтровать адрес. Но общую идею по длине адреса вы поняли. Его просто не запомнить.

Далее следует произвести и сохранить следующие настройки:

Настройки могут варьироваться в зависимости от ваших личных предпочтений.

На этом сайте я настроил всё так.

Обратите внимание на нижний блок, который подсказывает, что должен быть создан файл .htaccess в корне сайта с соответствующим содержимым.

Создайте его, например, через WinSCP и сохраните со вставленным из этого серого окошка содержимым. Тогда все сразу заработает как надо.

 

Подводя итог, скажу, что красивые ссылки/ЧПУ стали нормой сайтостроения уже много лет назад. Не забывайте использовать их, экономя нервы пользователей своих сайтов.

Поделиться

Комментарии Правила дискуссии

Читайте ранее:
Плагины WordPress

Вводный видеоурок по теме «Плагины». Последних существует  великое множество, и каждый серьёзный сайт выражает свою индивидуальность посредством установки и настройки...

Закрыть