Прибрати PHP в посиланнях і позбутися від рідкісної форми алергії

33

Від автора: ачхи! Вибачте, це у мене алергія на тещу, яка в гості приїхала. Точніше, на її парфуми. Так як чхання викликається різними факторами, то закликаю всіх враховувати це. А раптом у деяких ваших користувачів алергія на розширення .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]

Сподіваюся, сьогодні ви змогли позбутися від одного з видів алергії. А моя теща нарешті поїхала. Але дивно, що чхати я так і не перестав :) .