Убрать PHP в ссылках и избавиться от редкой формы аллергии

Убрать PHP в ссылках

От автора: апчхи! Извините, это у меня аллергия на тещу, которая в гости приехала. Точнее, на ее духи. Так как чихание вызывается разными факторами, то призываю всех учитывать это. А вдруг у некоторых ваших пользователей аллергия на расширение .php, отображаемое в ссылках? Поэтому лучше не рисковать, и убрать PHP ссылках.

Причины аллергии

На самом деле проявление аллергической реакции у пользователей на URL, содержащих в себе такое расширение, встречается очень редко. Тут кроется опасность серьезнее!

Мы уже знаем, что PHP является главной технологией, позволяющей создавать динамические ресурсы. Сейчас на его базе разработано множество различных движков, автоматизирующих все операции по администрированию ресурса. Начиная с установки стилей страниц и заканчивая его пагинацией, SEO-настройками и другими тяжелыми для ручного способа процессами «доведения» сайта.

Но каждая из CMS по своему задает URL для каждой страницы, созданной через ее админку. И в результате, если не учитывать эти особенности, у вас может оказаться две главные страницы. А все URL «озадачить» любую поисковую систему. Поэтому иногда убрать из ссылки index .php не только можно, но и полезно.

Предисловие

Сначала придется сделать небольшой экскурс. Самым популярным веб-сервером с поддержкой PHP уже долгое время остается Apache. Большая часть хостингом работает на нем.

Для глобальной настройки сервера предназначен httpd.conf. Но ведь на одном экземпляре Apache могут быть развернуто множество ресурсов. Понятно, что предоставить каждому сайту доступ к глобальной конфигурации никто не решится.

При этом вы, как владелец ресурса, арендующего виртуальное пространство на хостинге, можете сконфигурировать параметры сервера применимо к своим папкам. Для этого и предназначен .htaccess.

Через настройки данного файла можно максимально точно подстроить параметры сервера «под себя»:

Запретить пользователям доступ к определенным папкам.

Запретить переход из конкретного ресурса.

Установить поддерживаемые для загрузки графические форматы изображений.

Настроить редиректы.

Но как убрать php в конце ссылки? Это тоже можно сделать с помощью директив, заданных в .htaccess.

Решаем проблему!

Чаще всего современные CMS автоматически генерируют .htaccess при первом запуске сайта. Если у вас движок «самопальный», тогда самостоятельно создайте этот файл. Для этого откройте Блокнот и сохраните созданный файл с именем .htaccess в корневой папке своего сайта.

Убрать PHP в ссылках

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

Убрать PHP в ссылках

И добавляем весь остальной код:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^.*$ $0.php [L,QSA]
RewriteCond %{THE_REQUEST} ([^\s]*)\.php(\?[^\s]*)?
RewriteRule (.*) %1 [R=301,L]

Убрать PHP в ссылках

Что означает каждая из последующих строк, лучше не спрашивайте :) . Здесь все завязано на регулярных выражениях, а это уже совсем другой уровень познания. Краткие пояснения:

RewriteCond – данное правила устанавливает условие, при котором должно сработать правило RewriteRule.

RewriteRule – описывает, что должно произойти, если сработает RewriteCond. В нашем случае, это как должно поменяться URL, если в нем присутствует расширение .php.

Смотрим на результат. При переходе по разделам сайта отображается только имя страницы без расширения.

Убрать PHP в ссылках

Теперь разберемся, как можно убрать index php из ссылки URL. Опять переходим в .htaccess и добавляем в него две строки кода:

RewriteEngine On
RewriteRule ^index.php$ / [QSA,R]

Надеюсь, сегодня вы смогли избавиться от одного из видов аллергии. А моя теща наконец-то уехала. Но странно, что чихать я так и не перестал :) .

Самые свежие новости IT и веб-разработки на нашем Telegram-канале

Курс по программированию на языке PHP

Изучите PHP с нуля до результата!

Смотреть курс

Метки:

Комментарии Вконтакте:

Комментарии Facebook:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Я не робот.

Spam Protection by WP-SpamFree