Как создать правильный файл htaccess

Доброго время суток, уважаемые посетители!

Для чего нужен правильный файл htaccess: htaccess необходим для правильной и корректной работы Вашего блога или сайта. В этой статье мы с Вами познакомимся с файлом htaccess и создадим его.

Эта статья является продолжением курса — «онлайн обучение».

Перед созданием файла htaccess советую сделать резерв. «Как сделать бэкап базы данных, читайте в «настройке блога wordpress».

СОЗДАНИЕ ПРАВИЛЬНОГО ФАЙЛА HTACCESS

Правильный файл .htaccess

Это не так страшно, как кажется на первый взгляд, тем более Вы всегда можете восстановить свой блог из бэкапа базы данных.

Первое дело, которое Вы должны сделать – открыть блокнот.

(Рекомендую скачать и установить блокнот notepad ++, скачать можете здесь).

 Как создать правильный файл .htaccess с notepad ++

Далее мы будем записывать код в блокнот (сначала прочитайте статью, потом выберете правила, которые вам больше всего подходят, применять все необязательно).

Сразу сохраним документ и дадим ему название htaccess. Теперь закидывайте его в корень Вашего блога.

ПОЕХАЛИ К ПРАВИЛЬНОМУ ФАЙЛУ HTACCESS

  1. Это установки по умолчанию главной страницы (DirectoryIndex pagename.html)
  2. Страницы ошибок (error)
ErrorDocument 403 /403.phpErrorDocument 404 /404.phpErrorDocument 500 /500.php

Название, то есть адрес страницы может выглядеть иначе, например, / error/page404.html.

ЗАЩИЩАЕМ БЛОГ ОТ ХОТЛИНКА ПРАВИЛЬНЫМ ФАЙЛОМ HTACCESS

Правильным файлом .htaccess или запрет на копирование

Что такое хотлинг – расскажу на примере: например, Вы написали статью и вставили в нее картинки, не секрет, что статьи постоянно воруют, обычно это делают подростки, чтобы якобы время не терять (если статьи на сайте или блоге не уникальны, то в скором будущем его ждет попадание под фильтр поисковых систем — АГС).

Так вот, воруя статьи, они еще умудряются воровать Ваши картинки и не просто сохраняют их к себе на компьютер, а потом добавляют на сайт, воры пользуются Вашим сервером, скопировав URL код картинки и вставив к себе на сайт, из-за этого идет большая нагрузка на Ваш сервер. Чтобы это нам предотвратить вставьте этот код в файл htaccess:

RewriteEngine on RewriteCond %{ HTTP_REFERER}! ^$ RewriteCond %{ HTTP_REFERER}! ^http ://( www\.)?Vash_site.com/.*$ [NC] RewriteRule \. (gif|jpg|js|css)$ - [F]

Vash_site.com — поменяйте на свой сайт.

Теперь в место Вашей картинки на чужом сайте будет на ее месте надпись – 403 ошибка. Можно сделать так, чтобы вместо ошибки 403 была специальная картинка, для этого замените последние две строки таким кодом:

RewriteRule \. (jpg|png|gif)$ [NC, R, L]
В ПРАВИЛЬНОМ ФАЙЛЕ HTACCESS ЗАСТАВЛЯЕМ СОХРАНЯТЬ ФАЙЛЫ ВМЕСТО ИХ ОТКРЫТИЯ

Правильный файл .htaccess позволяет сохранять медиа

Бывает так, посетитель заходит к Вам на сайт и смотрит файлы онлайн, так вот если хотите, чтобы посетитель сохранял файл, то пишите в htaccess такое:

AddType application/octet-stream .doc .mov .avi .pdf .xls .mp4
КЭШ ФАЙЛОВ БЛОГА

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

#кэширование html и htm на сутки<FilesMatch ". (html|htm)$">Header set Cache-Control "max-age=43200"</FilesMatch>#кэширование css, javascript и txt-файлов на неделю<FilesMatch ". (js|css|txt)$">Header set Cache-Control "max-age=604800"</FilesMatch>#кэширование flash и картинок на месяц<FilesMatch ". (flv|swf|ico|gif|jpg|jpeg|png)$">Header set Cache-Control "max-age=2592000"</FilesMatch>#запрет на кэширование скриптов<FilesMatch "\. (pl|php|cgi|spl|scgi|fcgi)$">Header unset Cache-Control</FilesMatch>

Внимание: параметр max-age показывает секунды.

Следующий код включает на блоге ошибки на время отладки:

php_flag display_errors on

Удаляем ошибки сервера в правильном файле .htaccess

Настраиваем редирект, добавив код в файл htaccess. Настройка первого редиректа – 301:

Если Вы часто обновляете свой блог, то есть делаете на нем изменения, то этот код просто незаменим в файле htaccess, так как он будет перенаправлять ваших посетителей со старых заброшенных адресов на ново-созданные:

Redirect 301 /oldpage.html https:// mysite.com/newpage.html

Либо вот так:

Redirect permanent /oldpage.html

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

Расклеиваем домены с www и, наоборот, без:

Редирект с mysite.com на www.mysite.com:

RewriteEngine OnRewriteBase /RewriteCond %{ HTTP_HOST}! ^www.yoursitename.ru$ [NC]RewriteRule ^ (.*) $ https://www.yoursitename.ru/$1 [L, R=301]

Теперь наоборот:

RewriteEngine on RewriteBase / RewriteCond %{ HTTP_HOST}! ^yoursitename.ru$ [NC] RewriteRule ^ (.*) $ https://yoursitename.ru/$1 [L, R=301]

В ПРАВИЛЬНЫХ ФАЙЛАХ HTACCESS СТОИТ ВТОРОЙ НА ОЧЕРЕДИ РЕДИРЕКТ – 302

Правильные файлы .htaccess ответ сервера 302

Вы, когда не будь, встречали такое – когда Вы приходите на сайт, а там вместо желаемой Вами информации большими буквами написано «Извините, но на сайте проводятся работы, приходите позже», что-то типа того, так вот вставив данный код, будет, что-то вроде этого:

RewriteEngine onRewriteCond %{ REQUEST_URI}! /informpage.html$RewriteCond %{ REMOTE_HOST}!^12\.345\.678\.90RewriteRule $ https://mysite.com/informpage.html [R=302, L]

Вместо 12.345.678.90 поставьте свой IP адрес, узнать его можете, задав этот вопрос в любой поисковой системе или здесь (хостинг Украина, если конечно Вы создавали там аккаунт вместе со мной).

КАК ПЕРЕАДРЕСОВЫВАТЬ ПОСЕТИТЕЛЕЙ НА ДРУГОЙ АДРЕС САЙТА ИЛИ БЛОГА

Редирект на сайт

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

ErrorDocument 403 https://www.mysite.comOrder deny, allowDeny from allAllow from 12.345.678.90Allow from 12.345.678.92

Последние две строки это IP адреса, с которых перенаправление работать не будет.

Можно переадресовать на https соединение, оно является безопасным:

RewriteEngine OnRewriteCond %{HTTPS}! onRewriteRule (. *) https://%{HTTP_HOST} %{REQUEST_URI}
СТАВИМ ЗАПРЕТ ИЛИ БЛОКИРОВКУ

Ставим запрет на листинг наших директорий:

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

Options All -Indexes Options + Indexes

Этим кодом мы с Вами запрещаем доступ к файлу.

Запретить можно любой файл, например – правильный файл htaccess, вот таким образом:

<Files .htaccess>Order allow, denydeny from all</Files>

Блокируем по IP адресу, для того чтобы спамеры не жили у Вас на блоге.

<Limit GET>Order Deny, AllowDeny from 12.345.678.90Deny from 90.876.543.Deny from .tvoe.tvAllow from all</Limit>

С помощью кода выше будут блокированы следующие IP адреса:

IP адрес с 12.345.678.90;

Будут блокированы абсолютно все посетители, которые попадают под IP от 90.876.543.0 до 90.876.543.255;

Также все посетители от tvoe.tv провайдера.

НАСТРАИВАЕМ ЧПУ С ПОМОЩЬЮ ПРАВИЛЬНОГО ФАЙЛА

Правильные ссылки .htaccess

Если Вы уважаемый посетитель блога «новая система обучения» проходите курс «обучение онлайн», то Вы вместе со мной должны были создать блог на движке wordpress и настройку «постоянные ссылки ЧПУ» мы проходили в настройке блога wordpress.

Остальные посетители тоже могут зайти и почитать о настройке блога wordpress, о «постоянных ссылках ЧПУ» написано в конце статьи.

Если Вы пользуетесь блогом wordpress, то лучше эти настройки сделать в админ панели.

УБИРАЕМ ИЗ АДРЕСНОЙ СТРОКИ? P=

По умолчанию адрес страниц выглядит вот так: Vash_site.com/? p=xxxx, где xxxx – id статьи. Чтобы сделать человеко-понятный адрес вставьте следующий код в htaccess:

RewriteCond %{ REQUEST_URI} ^/ ([0-9] +) $RewriteRule.* https://yoursitename.ru/?p=%1 [R=301, L]

Как убрать из адресной строки category.  Пишем такой код:

RewriteRule ^category/ (. +) $ https://vash_site.com/$1 [R=301, L]

Ну и на завершение «JQuery framework», 100% подходит для тех оптимизаторов, которые начали изучать jQuery.

Фреймворки очень полезная штука, если кто не знает, что такое фреймворк – простейшая концептуальная структура, ее используют для решения сложных и проблемных задач. Если вы понимаете, о чем я Вам рассказываю, тогда пробуйте.

Если у Вас возникли вопросы по правильному файлу htaccess, задавайте их в комментариях к статье. [urlspan]Подписывайтесь на обновления блога[/urlspan] по электронной почте, чтобы ничего не пропустить. До встречи!

С уважением, Алексей Кобзарев



Интересный и полезный контент

25 thoughts on “Как создать правильный файл htaccess

  1. Валерий

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

  2. Михаил

    Добрый день- все перерыл- у меня сайт на html, страницы все прописываются так: имя сайта.ru/нужная-страница.html возможно ли прописать через файл .htaccess вот в таком виде- : имя сайта.ru/прописываем еще одну страницу/нужная-страница.html
    Имя файлу не могу присвоить со слешом «/», вот как сделать перенаправление чтобы в урле путь прописывался через урл другой страницы??? Большое спасибо за хорошую информацию.

  3. Алексей

    Здравстуйте!
    Я хотел бы воспользоваться вашими услугами и заказать у вас сделать редерикт 301
    htaccess.
    С уважением Алексей

  4. Дмитрий

    Доброго дня! Всегда делал редиректы первого уровня, а тут вдруг понадобились все красивые адреса.
    Вот такой код работает:
    RewriteRule ^([0-9a-zA-Z]+)$ index.php?page=$1
    А вот такой уже нет:
    RewriteRule ^manufacture/([0-9])$ index.php?page=manufacture&id=$1
    Почему?

    1. Алексей Кобзарев Автор записи

      Спасибо за код! Вы поставили вопрос «Почему?», то есть хотите ответить почему не работает. Так почему?

      1. Дмитрий

        В том то и дело, что я не понимаю, почему он не работает в таком формате.

        1. Алексей Кобзарев Автор записи

          Я тоже не понимаю. Может кто из посетителей знает?

        2. Дмитрий

          Поставил в начале страницы
          echo $_GET[‘page’];
          echo $_GET[‘id’];
          Код отдал правильные данные.Видимо ошибка в обработке.

  5. Татьяна

    У меня на сайте автоматически генерируются адреса
    такого типа: анкор
    Пыталась исправить их по аналогии с тем,как в Вашей статье убирается ?p=
    Поместила в htaccess следующий код:
    RewriteCond %{QUERY_STRING} section=1
    RewriteRule ^index.php анкор? [R=301,L]
    Но результата никакого. Подскажите, пожалуйста, что я делаю не так?

    1. Алексей Кобзарев Автор записи

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

        1. Алексей Кобзарев Автор записи

          В файле function.php (функции темы). Поищите там: str=info, если не получиться, то эти слова ищите отдельно.

  6. SerBаrmaley

    Полезная статья внедрил все и скажу доступно все написано понятно даже новичкам

    1. Алексей Кобзарев Автор записи

      Я рад, что у вас все получилось. Можно вопрос, что вы именно внедряли?

  7. Надежда Суптеля

    Здравствуйте Алексей! Попыталась кое — что внедрить из Вашего htaccess и у меня пошла ошибка 400 сначала, потом убрала один код — вылезла ошибка 500 — нет блога. Быстро вернула свой файлик. Поэтому пока буду придерживаться своего порядка. Возможно это еще потому, что у меня в админ панели Внешний вид Фон выскакивает ошибочка 500.

    Забодалась искать, где и что, проверила одним скриптом, нашла ошибку — удалила. Облазила весь движок и его файлы — не могу найти ошибку. На хостинге нет логов и багов, ошибка идет. Переустановила движок вручную — не помогает. Попыталась установить старую версию движка — не устанавливается почему — то. Хотя файлы все перезаписались при установке через FZ. А 500 при переходе на фон все равно пока остается.

    1. Павел

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

  8. Игорь

    Спасибо за познавательную статью. У меня такой вопрос: будет ли работать блокировка по IP в виде диапазана? Например: Deny from 5.248.128-255
    Заранее спасибо.

  9. Алексей

    Здравствуйте,я в отчаянии уже! залил простой html сайт на godaddy, сейчас практически не могу зайти ни на какую страницу так как выдает ошибку 404, я уверен что указал правельный путь к странице но она всетаки не открывается. Нашел в интернете что здесь htaccess виновен во всем, но я не знаю как его правельно делать, нашел разные примеры но они не правильно работают. Алексей, помогите пожалуйста

    1. Алексей Кобзарев Автор записи

      На мою почту скиньте доступ к вашей админке, я поправлю.

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

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