5 трюков с файлом .htaccess

Сегодня я расскажу о нескольких полезных вещах, которые можно сделать с файлом htaccess. Эти вещи, которые вы сможете использовать на своих веб-сайтах, сделают работу с сайтами более удобной.

Итак, начнем:

1. Перенаправление посетителей при обновлении сайта.

Когда Вы обновляете или тестируете сайт на хостинге, Вы можете перенаправлять посетителей на определенную страницу. Для этого в файле .htaccess необходимо прописать следующий код:

order deny,allow
deny from all
allow from 123.123.123.123
ErrorDocument 403 /page.html
<Files page.html>
allow from all
</Files>

Замените 123.123.123.123 на Ваш ip-адрес, а также замените page.html на ту страницу, которую будут видеть пользователи, зашедшие на сайт.

2. Определенная страница с ошибкой 404.

Когда пользователи обращаются к странице на Вашем сайте, которой не существует, то им показывается ошибка 404. Если вы хотите сделать ее определенной страницей, то в файле htaccess следует прописать следующий код:

ErrorDocument 404 /404.html

Перенаправлять посетителей в таком случае удобно на главную страницу сайта.

3. Редирект на перемещенные или переименованные страницы.

Если вы переименовали или переместили некоторые страницы на сайте и хотите, чтобы посетители увидели уже новые страницы, даже если они обращаются по старому адресу, следует в файл htaccess прописать следующий код:

Redirect 301 /old.html http://yoursite.com/new.html

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

4. Запрет на просмотр директории.

Если у Вас в папке на сайте нет файла index, то любой пользователь может посмотреть, какие файлы в ней лежат.

Чтобы избежать таких вещей, следует прописать такой код:

Options All -Indexes

На некоторых хостингах такая функция прописана по-умолчанию, в таком случае Вам не стоит беспокоиться.

5. Создание красивых URL.

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

http://yoursite.com/about
http://yoursite.com/pages/about.html

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

Вот некоторые примеры с кодом:

RewriteEngine on
RewriteRule ^about/$ /pages/about.html [L]
RewriteRule ^features/$ /features.php [L]
RewriteRule ^buy/$ /buy.html [L]
RewriteRule ^contact/$ /pages/contact.htm [L]

P.S. В интернете существует несколько сайтов, с помощью которых можно автоматически редактировать файл .htaccess. Например htaccesseditor.com.

P.P.S. Чтобы с нуля создать такой файл Вам следует открыть, например, блокнот, вписать в него строчку

AddHandler application/x-httpd-php .php .htm .html

нажать "Сохранить как...", в имя файла ввести .htaccess и выбрать "все файлы".

Данный урок подготовлен для вас командой сайта ruseller.com
Источник урока: www.frontdeskapp.com
Перевел: Сергей Патин
Урок создан: 22 Июня 2009
Просмотров: 96901
Правила перепечатки


5 последних уроков рубрики "Для сайта"

  • Эффекты блочного раскрытия

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

  • 15 полезных .htaccess сниппета для сайта на WordPress

    Если вы хотите существенно повысить уровень безопасности вашего сайта на WordPress, то вам не избежать конфигурации файла .htaccess. Это позволит не только уберечься от целого ряда хакерских атак, но и организовать перенаправления, а также решить задачи связанные с кэшем.

  • 20 бесплатных тем для WordPress в стиле Material Design

    Material Design — это набирающий обороты тренд от Google. В данной подборке собраны бесплатные темы для WordPress, выполненные в этом популярном стиле.

  • 20 сайтов с креативным MouseOver эффектом

    Эффекты на то и существуют чтобы впечатлять наших посетителей. В этой подборке собрано несколько десятков ресурсов, чьи создатели очень постарались впечатлить своих посетителей.

  • 45+ бесплатных материалов для веб дизайнеров за август 2016

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

или авторизуйтесь, чтобы добавлять комментарии, оценивать уроки и сохранять их в личном кабинете
  • 22 Июня 2009 21:20
    Django
    Спасибо за урок! Обязательно приму на заметку! :-)
  • 22 Июня 2009 22:21
    Святослав
    Про чпу очень хотелось бы по подробнее, особенно как преобразовывать lessons.php?rub=29&id=305, в интернете куча, а ни че не пашет, вся надежда на вас=)
  • 22 Июня 2009 22:32
    nikolya
    Да, и пример с таким http://site/news.php и желательно видеоурок
  • 22 Июня 2009 22:50
    Виталий
    Спасибо! Полезная информация.
  • 22 Июня 2009 22:53
    Dimka
    огромное спасибо вот это реально было нужно ErrorDocument 404 /404.html
  • 23 Июня 2009 05:02
    Николай
    дополнительные страници с ошибкой ErrorDocument 403 /errors/403.html ErrorDocument 404 /errors/404.html ErrorDocument 500 /errors/500.html
  • 23 Июня 2009 10:14
    OrlenkoKN
    Святослав, ваш пример можно переделать так: RewriteRule ^lessons/rub([0-9]+)/id([0-9]+)/$ /lessons.php?rub=$1&id=$2 [L] Тогда получится: lessons/rub29/id305/ По примеру можно и остальное...
  • 23 Июня 2009 11:26
    Святослав
    OrlenkoKN, пробую на своем сайте не полючается, а может надо так все страницы закодировать? Потомучто я только кодирую articles.php?cat=1&id=2 , а еще есть articles.php?cat=1 и articles.php и index.php... Может быть из за этого?
  • 23 Июня 2009 11:27
    Святослав
    OrlenkoKN, не получается, может быть надо все страници закодировать?
  • 23 Июня 2009 12:11
    Илья
    Святослав, я делаю так: прописываю в .htaccess - RewriteEngine on RewriteCond %{SCRIPT_FILENAME} !-f RewriteCond %{SCRIPT_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 этот запрос перенаправляет все запрсы на index.php,а в самом index.php прописываем $url=explode('/',$_SERVER['REQUEST_URI']); тепер если произвести запрос по адресу,например,site.ru/proba/add,то тог в $url[0] будет "proba", в $url[1] будет "add" и т.д
  • 23 Июня 2009 15:17
    Святослав
    Илья, что-то не получилось, сейчас еще полопачу, можно вашу аську или мыло?
  • 23 Июня 2009 18:17
    Viktor
    Спасибо большое, попробую )
  • 23 Июня 2009 18:23
    BOOBR
    Спасибо, а можно ли в первом примере вместо ip адреса вводить например так: 79.126.0.0/17 82.208.64.0/18 89.109.0.0/18 93.120.128.0/18 213.177.96.0/19 95.37.0.0/17
  • 23 Июня 2009 23:39
    Игорь
    Святослав, если у вас на хостинге не подключен модуль апача mod_rewrite, то с ЧПУ у Вас ничего не выйдет.
  • 24 Июня 2009 08:22
    OrlenkoKN
    Святослав, пишите на icq 914-811 - подскажу..
  • 24 Июня 2009 21:38
    Святослав
    OrlenkoKN, спасибо большое, я вам чуть позже напишу=)
  • 30 Июня 2009 17:15
    Cheiz
    Здорого!
  • 31 Октября 2009 13:00
    Kolyl
    спасибо очень было нужно ErrorDocument 404 /404.html
  • 25 Ноября 2009 19:17
    Debug
    Отличная штука, спасибо :) Кстати, в примере маленький косячок, если взять: RewriteRule ^about/$ /pages/about.html [L] , то получим www.site.ru/about/ . И при переходе как на www.site.ru/about получаем 404 ошибку (как в примере). А вот www.site.ru/about/ - как раз будет работать. Приписываем ещё RewriteRule ^about$ /pages/about.html [L] и тогда все пучком :) Т.е. ссылка будет работать как /about/ и как /about .
  • 20 Ноября 2010 13:31
    alex alex
    Спасибо большое :)
  • 1 Ноября 2011 10:54
    smolina_viktory
    А как узнать подключен ли на хостинге модуль апача mod_rewrite?
  • 4 Ноября 2011 16:41
    migalych
    А есть какие-либо нюансы при создании файла .htaccess? Так как даже простые примеры приведенные в уроке не могу заставить работать)
  • 2 Января 2012 01:03
    artemmian
    Options All -Indexes поправка. если кинуть в дирректорию без индекса файл .хтц с надписью редиректа при 404-й ошибке, то вас автоматом направит на 404
  • 27 Марта 2013 00:24
    Alisas
    Пожалуйста подскажите, .htaccess перенаправляет как и хотела на мою страницу 404.html , но напрочь сбивает код сайта. Вот что получается http://em.shopargo.com/sad/sazan_paket.htm, а нужно вот так чтоб было http://em.shopargo.com/404.html Помогите пожалуйста!
  • 24 Июня 2013 13:43
    skylinex
    Почему на странице ошибки когда тестировал набрал неправильный адрес не отображаются картинки???
  • 21 Декабря 2013 03:32
    roma1999
    Ребят помогите пример http://ruseller.com/index.php/q/index.php/
  • 15 Декабря 2015 19:43
    jopodish
    Добрый день, хорошая статья, но я никак не могу найти того что не дает мне покоя. Как сделать редирект на мобильную страницу сайта? Сделал страницу облегченную для мобильных приложений. Сделал редирект в .htaccess
    RewriteCond %{HTTP_USER_AGENT} (?i:midp|samsung|nokia|j2me|avant|docomo|novarra|palmos|palmsource|opwv|chtml|pda|mmp|blackberry|mib|symbian|wireless|nokia|hand|mobi|phone|cdm|upb|audio|SIE|SEC|samsung|HTC|mot-|mitsu|sagem|sony|alcatel|lg|eric|vx|NEC|philips|mmm|xx|panasonic|sharp|wap|sch|rover|pocket|benq|java|pt|pg|vox|amoi|bird|compal|kg|voda|sany|kdd|dbt|sendo|sgh|gradi|jb|dddi|moto|iphone|android)
    RewriteRule ^(/)?$ ewac.ru/mobile.html [R=301,L]
    так идет переадресация только с главной, а мне нужно со всех страниц, поробовал изменить условие
    RewriteCond %{HTTP_USER_AGENT} (?i:midp|samsung|nokia|j2me|avant|docomo|novarra|palmos|palmsource|opwv|chtml|pda|mmp|blackberry|mib|symbian|wireless|nokia|hand|mobi|phone|cdm|upb|audio|SIE|SEC|samsung|HTC|mot-|mitsu|sagem|sony|alcatel|lg|eric|vx|NEC|philips|mmm|xx|panasonic|sharp|wap|sch|rover|pocket|benq|java|pt|pg|vox|amoi|bird|compal|kg|voda|sany|kdd|dbt|sendo|sgh|gradi|jb|dddi|moto|iphone|android)
    RewriteRule ^(.*)?$ ewac.ru/mobile.html [R=301,L]
    Так получается циклическая ошибка, ну и понятно ведь она редиректит еще сама на себя, вот тут и нужна помощь. Какое условие нужно добавить что бы была корректная переадресация? Как сделать переадресацию по ширине экрана, а не по устройству? Помогите пожалуйста
^ Наверх ^