.htaccess – это файл сервера Apache, который лежит в корне сайта и содержит в себе дополнительные инструкции и примечания по работе сайта на сервере. В этой статья я опишу основные инструкции, которые могут пригодиться для настройки простого сайта/блога, чтобы он правильно работал.
1. Кодировка сайта
Одна из основных функций, это указания кодировки сайта, чтобы браузер понимал в какой кодировке ему отображать файл.
Указываем кодировку файлов по умолчанию UTF-8.
Иногда без этой инструкции просто не обойтись, например вы создали сайт на простых html файлах или на php файлах с подключениями. Выставили в notepad-е кодировку для всех файлов UTF-8:

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

Потому что не все браузеры обрабатывают этот мета тег и по умолчанию используют кодировку windows-1251. Для того чтобы исправить эту проблему, надо принудительно заставить браузер использовать кодировку UTF-8, прописав в файле .htaccess инструкцию AddDefaultCharset UTF-8. Обновляя после этого страницу, вы увидите нормальный текст в нужной нам кодировке:

С этой проблемой я столкнулся, когда блог на WP находился в подкатегории и надо было вывести последние записи с блога на главную страницу, которая была сделана на простом пхпэшном файле. Из-за того, что WordPress по умолчанию использует кодировку UTF-8, у меня возникли проблемы с выводом статей, пока не прописал принудительную инструкцию по определению кодировки для браузера.
2. Редирект
Существует много разных способов сделать редирект. Опишу основные.
Редирект одной страницы
Redirect 302 /page http://google.ru
Со страницы cospi.ru/page будет включён временный 302 редирект на страницу http://google.ru. Если вы хотите включить постоянный редирект, то используйте 301, вместо 302. Про разницу между этими редиректами, можете почитать в статье Коды заголовков HTTP.
Редирект всего сайта
При склейки всего сайта используются вот такие инструкции:
RewriteEngine on
RewriteRule (.*) http://newdomain.ru/$1 [R=301,L]
В таком случае, с каждой страницы старого домен, будет работать перенаправление на такую же страницу на новом домене. Подробнее про склейку сайта, можете почитать в статье - Склейка сайта в Яндексе и Google.
Склейка домена с www и без
Для этого нам понадобиться вот вариант редиректа:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^domain\.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]
В этом примере, главным доменом будет www.domain.com, а domain.com будет склеено к нему. В обратной ситуации, меняем www по аналогии.
Запрет на доступ
Чтобы запретить заходить на сайт с определённого IP, например с IP 76.196.120.10, надо прописать вот такие инструкции в файл .htaccess:
Allow from all
Deny from 76.196.120.10
Можно добавить ещё IP, дописав их через запятую.
В противоположной ситуации, когда надо запретить доступ всем, кроме определённых IP, указываем так:
Deny from all
Allow from 76.196.120.10
Никто не сможет зайти на сайт, кроме IP 76.196.120.10.
Allow и Deny соответственно – разрешаем и запрещаем.
На этом всё, не забываем подписываться на обновление сайт и обязательно поучаствуйте в моей акции для читателей cospi.ru.
Создание сайта с нуля - довольно сложное занятие, но фирма vladwebstudio делает это - изготовление сайтов город Владимир. Если вы не разбираетесь в тонкостях создания сайта, то обращайтесь и вам помогут.
Не забудьте подписаться
через rss
и
следовать в twitter-e
— для получения обновлений.
Подписаться на обновление по почте:
Коспи, не опускайся так низко, до хтацэс-ов…
Конечно
Это для меня интересная тема, потому что собрался сайт немного модернизировать, с фильтрацией трафика. Но это позже опишу.
Хороший пост) Но все-таки в современных условиях по айпи доступ разграничивать…идея не очень)
Смотря для какиех случаев. Если например спамят постоянно с одного IP, то можно прикрыть.
даёшь интересные посты!
П.С. и часто, и за спасибо
Спасибо
Отличный блог у вас! Странно, что раньше не встречался на просторах интернета
А как AddDefaultCharset UTF-8 указать для конкретной страницы, а не для всего сайта?
Вы саму страницу сохраняйте в нужной кодировке, если вы делаете на голом html, а в движках уже автоматически выбрана кодировка. Для WP это utf-8 и сделать чтоб весь сайт был в этой кадировке, а какая-нибудь одна в другой – не реально.
Здравствуйте,возникла такая проблема, склеил сайты, поставил редирект через .htaccess с старого домена на новый, но мне надо чтоб одна страница старого домена не редиректилась на новый, есть ли какое ни буть исключение в .htaccess? К примеру, что у меня стоит:
RewriteCond %{HTTP_HOST} ^xppx.org.ua$ [OR]
RewriteCond %{HTTP_HOST} ^www.xppx.org.ua$ [OR]
RewriteCond %{HTTP_HOST} ^www.xppx.org$
RewriteRule ^(.*)$ http://xppx.org/$1 [R=301,L]
если есть, то куда его вставить? Надеюсь на ваш скорый ответ.
Смотрите, есть вот таккая директива в htaccess:
RewriteEngine off
</FilesMatch>
С помощью неё отключается редирект для файла robots.txt, вам надо что-то подобное. Попробуйте разобраться с директивой
Конкретнее подсказать к сожалению не могу, нет времени проверять.