- Пример настройки файла htaccess php
- Указываем индексный файл (который первым открывает при обращении к сайту)
- Редирект htaccess php
- Редирект с сохранением рейтинга страницы
- Редирект пользователя с конкретным ip
- Склеивание www и http htaccess php
- Создание ЧПУ или Человеко-Понятных-Урлов htaccess php
- Редирект всех файлов папки на один файл
- Защита от хотлинков htaccess php
- Определение кодировки htaccess php
- Создание своих страниц ошибок
- Запрещаем доступ
- Файл .htaccess — настройка перенаправлений и управление конфигурацией веб-сервера
- Примеры использования файла .htaccess
- 3. Диагностика ошибок
- .htaccess
- Что такое .htaccess?
- Где находится файл .htaccess?
- Как проверить работает ли .htaccess?
- Правильный 301 редирект через файл .htaccess
- 301 Редирект с одной страницы на другую (или сайт)
- 301 Редирект с www-сайта на сайт без www
- Обратный редирект с домена без www на домен с www
- Редирект всех посетителей со старого сайта на новый
- Как добавить .html в конце URL?
- Как убрать .html в конце URL?
- Как убрать слэш в конце URL?
- 301 Редирект с одного раздела на другой
- 301 Редирект при переезде со старого домена на новый
- Правильное изменение страниц ошибок через .htaccess
- Настройки безопасности сайта через файл .htaccess
- Защита сайта от скриптовых инъекций
Пример настройки файла htaccess php
Примеры записей в htaccess: Индексный файл, Редирект с сохранением рейтинга страницы, Склеивание www и http, Создание ЧПУ или ЧеловекуПонятныхУрлов, Редирект всех файлов папки на один файл, Защита от хотлинков, Определение кодировки и многое другое!
Указываем индексный файл (который первым открывает при обращении к сайту)
Можно указать один или несколько файлов
Редирект htaccess php
Глобальный редирект(первый /) ВСЁ пересылаем на новый адрес http://www.newsite.ru/
Все обращения к katalog переадресуем на домен newsite.ru в раздел newkatalog
Редирект с сохранением рейтинга страницы
old — пример пути старой страницы. new — пример пути новой страницы.
Редирект пользователя с конкретным ip
Конкретного пользователя (надоел он или нужно его переслать на внутренний раздел) с данным ip пересылает на страницу /out.html
Склеивание www и http htaccess php
Уже многим SEO (продвижение и оптимизация) известно, что для Поисковых Систем адреса с/без www — это разные адреса и доступность сайта с www отрицательно влияет на индексацию и ранжирование. Поэтому зачастую SEO просят разработчиков склеить сайт без www (чтобы при обращении к сайту с www происходила пересылка на без www, т.е. только http)
Теперь даже если Вы наберёте в адресной строке www.yoursite.ru, то сервер перешлёт Вас на http://yoursite.ru
Создание ЧПУ или Человеко-Понятных-Урлов htaccess php
После добавления данной строки в .htaccess будут доступны два адреса для документа. Например: www.yoursite.ru/article.php?id=1 и www.yoursite.ru/article/1
В результате www.yoursite.ru/art.php?type=123 превращается в www.yoursite.ru/cat/type/123/:
Статья с технически адресом www.yoursite.ru/article.php?id=1 теперь будет доступна со своим понятным человеку названием www.yoursite.ru/katalog-saitov.
Редирект всех файлов папки на один файл
Например вы больше не нуждаетесь в разделе сайта articles и хотите перенаправить все запросы к папке /articles на один файл /non-articles.php. Поможет код ниже
Защита от хотлинков htaccess php
Возможно Вам знаком такой вариант, когда изображения на сервер не закачивают, а используют просто ссылку на сайт. В результате для сайта-владельца изображения создаётся лишняя нагрузка трафик. Используем код ниже
Определение кодировки htaccess php
Дополнительные варианты самых популярных кодировок: UTF-8, Windows-1251, KOI8-R. В примерах рассмотрим самую распространённую UTF-8
Создание своих страниц ошибок
Если Вам хочется видеть после неправильной ссылки другую страницу, сделанную, например, самим собой, то указываем в .htaccess следующий код (ну и соответственно делаем там свои страницы):
Видов ошибок на самом деле больше. Можете создать дополнительно и для них записи, опираясь на весь список |
Запрещаем доступ
Скорее всего Вы столкнётесь с тем, что часть файлов и директорий надо будет закрыть от общего доступа.
Файл .htaccess — настройка перенаправлений и управление конфигурацией веб-сервера
.htaccess — это конфигурационный файл веб-сервера Apache , позволяющий управлять работой веб-сервера и настройками сайта с помощью различных параметров (директив) без изменения основного конфигурационного файла веб-сервера.
На хостинге RU-CENTER в настоящее время используется веб-сервер Apache версии 2.4.
Директивы файла .htaccess действуют для каталога, в котором размещён такой файл, и для всех его подкаталогов. Если вы желаете с помощью .htaccess изменить настройки для сайта в целом, его следует размещать в корневом каталоге сайта
Пожалуйста, будьте внимательны при редактировании файла .htaccess! При сохранении такого файла в кодировке UTF-8 в нём не должно присутствовать BOM-сигнатуры. Для редактирования файла .htaccess и других конфигурационных файлов мы рекомендуем использовать не «Блокнот» Windows, а специальные текстовые редакторы, например Notepad++.
Примеры использования файла .htaccess
1. Перенаправление доменов c синонима сайта на основной домен с кодом 301
Перенаправить запросы на domain.ru с любого из синонимов сайта
RewriteEngine On
RewriteCond %
RewriteRule ^(.*)$ http://domain.ru/$1 [L,R=301]
Перенаправить запросы на www.domain.ru с любого из синонимов сайта
RewriteEngine On
RewriteCond %
RewriteRule ^(.*)$ http://www.domain.ru/$1 [L,R=301]
Эти правила рекомендуется размещать в самом начале файла .htaccess.
2. Постоянное перенаправление с кодом 301
Если вы изменили адрес страницы сайта, добавьте в .htaccess следующие строки, чтобы запросы со старого адреса переадресовывались на новый
Redirect 301 /page.html http://www.domain.ru/new_page.html
- page.html — адрес старой страницы относительно корня сайта;
- www.domain.ru — имя сайта;
- new_page.html — адрес страницы, на которую нужно выполнить перенаправление.
Например, для перенаправления всех запросов к странице /period/?test=123 вашего сайта на domain.ru, вы можете написать:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %
RewriteRule ^period/$ http://domain.ru/ [L,R=301]
3. Переопределение страниц ошибок
При помощи файла .htaccess вы можете установить свои страницы ошибок:
#401 Авторизация не выполнена
ErrorDocument 401 http://domain.ru/errors/401.html
#403 Доступ запрещен
ErrorDocument 403 http://domain.ru/errors/403.html
#404 Страница не найдена
ErrorDocument 404 http://domain.ru/errors/404.html
#500 Внутренняя ошибка сервера
ErrorDocument 500 http://domain.ru/errors/500.html
Соответствующие файлы страниц ошибок (401.html, 404.html и др.) необходимо разместить в каталоге
Для того чтобы при случайном упоминании прямых ссылок на такие страницы они не проиндексировались в поисковых системах, рекомендуется:
User-agent: *
Disallow: /errors
/ваш_домен/docs/errors/.htaccess, в котором прописать
4. Постраничное перенаправление запросов на другой домен c кодом 301
Следующий код перенаправит все запросы к страницам вашего сайта на аналогичные страницы другого сайта, например, запрос http://domain.ru/main будет переадресован на http://www.newdomain.ru/main:
Redirect 301 / http://www.newdomain.ru/
RewriteEngine On
RewriteRule ^(.*)$ http://newdomain.ru/$1 [R=301,L]
5. Ограничение доступа к сайту по IP
Запретить доступ к сайту с IP-адресов 123.4.5.6 и 123.5.4.3
Order Allow,Deny
Allow from all
Deny from 123.4.5.6 123.5.4.3
Запретить доступ к сайту со всех адресов кроме 123.4.5.6 и 123.5.4.3:
Order Deny,Allow
Deny from all
Allow from 123.4.5.6 123.5.4.3
Запретить доступ к сайту для всех:
6. Переопределение главной страницы сайта (индексного файла каталога)
Сделать главной страницей файл menu.html:
7. Включение обработки PHP в .html-файлах
RemoveHandler .html .htm
AddType application/x-httpd-php .php .htm .html .phtml
8. Запрет выдачи листинга каталога
В случае отсутствия в папке главной страницы (индексного файла), при обращении без указания конкретного имени файла в запросе будет выдан список всех файлов, находящихся в каталоге. Для того чтобы запретить отображение листинга каталога, добавьте в файл .htaccess строку:
9. Включить выполнение CGI-скриптов в папке docs для файлов с расширениями .cgi, .pl. .py
В папке c CGI-скриптами необходимо разместить файл .htaccess с содержимым:
AddHandler cgi-script .cgi .pl .py
Options +ExecCGI
Скрипт должен иметь атрибут исполнения (+x, права доступа, начинающиеся с 7, например, 755).
Атрибуты (права доступа) можно изменить с помощью файлового менеджера панели управления, при помощи вашего FTP-клиента или по SSH . Также в разделе Веб-сервер → Управление модулями должен быть включен модуль CGI.
10. Блокировка переходов со сторонних ресурсов
Для запрета перехода c baddomain.ru на domain.ru добавьте в .htaccess следующее:
RewriteEngine on
RewriteCond %
RewriteRule .* — [F]
Если требуется запретить переходы с нескольких доменов, то используйте следующие директивы
RewriteEngine on
RewriteCond %
RewriteCond %
RewriteCond %
RewriteRule .* — [F]
11. Особенности использования кириллических доменов (.РФ, .МОСКВА и др.)
В файле .htaccess использование кириллицы не допускается. При составлении правил перенаправления для кириллических доменов необходимо указывать имя домена в punycode. Узнать имя домена в punycode можно с помощью сервиса Whois.
Например, для перенаправления site.ru на caйт.рф нужно воспользоваться следующим правилом:
RewriteEngine on
RewriteCond %
RewriteRule ^(.*)$ http://xn--80aswg.xn--p1ai/$1 [R=301,L]
В этом случае ваши посетители могут увидеть именно punycode-представление доменного имени в адресной строке браузера. Это не является ошибкой.
12. Перенаправление с HTTP на HTTPS и обратно
Перенаправить запросы на https://domain.ru
Перенаправить запросы на http://domain.ru
3. Диагностика ошибок
Если после редактирования или размещения .htaccess при обращении к сайту вы получили ошибку 500, то, скорее всего, в файле .htaccess допущена ошибка. Посмотреть её причины вы можете в лог-файле /var/log/ваш_домен.error_log.
.htaccess
Что такое .htaccess?
Файл .htaccess (англ. hypertext access) — это дополнительный механизм конфигурации веб-сервера Apache. Он используется для простой и удобной настройки веб-сервера на котором хранится сайт пользователя. Соответственно меняя настройку веб-сервера, мы сможем поменять работу сайта. Как правило, файл .htaccess находится в корневом каталоге, а его действие распространяется на весь сайт и на все подкаталоги. Если же в другом каталоге содержится свой .htaccess, то он будет действовать только на свой каталог и подкаталоги.
Важно! Изменяя файл .htaccess можно серьезно нарушить работу сайта, а также необдуманные действия с ним могут не иметь видимых последствий, но повлечь за собой снижение позиций в поисковых системах либо полную их потерю. Поэтому мы рекомендуем перед любыми изменениями файла сохранять его копию, чтобы иметь возможность вернуть прежние настройки.
Где находится файл .htaccess?
Обычно он располагается в корневом каталоге сайта. Иногда в различных CMS может находится файл htaccess.txt, который никак не воспринимается сервером и ни на что не влияет. Чтобы он начал работать, нужно его переименовать в .htaccess. Если это не получится сделать на вашем компьютере, то зайдите на свой сервер через FTP-клиент, и переименуйте файл прямо сервере.
Редактировать файл на компьютере можно с помощью любого текстового редактора, но, чтобы избежать возможных проблем с кодировкой, мы рекомендуем использовать для этого Notepad++.
Как проверить работает ли .htaccess?
Все просто, напишите в первой строчке этого файла любое слово (например YAROBOT), сохраните файл и замените им находящийся на сервере. Если сайт продолжит работать, то .htaccess в данный момент не работает. Если же появится ошибка 500 Internal Server Error, то это значит, что веб-сервер не смог понять команду (YAROBOT) и выдал ошибку. Этот факт подтвердит, что работа .htaccess на сервере поддерживается и включена в данный момент. Чтобы вернуть сайту работоспособность удалите строчку с YAROBOT.
Далее мы поговорим о всем полезном, что можно сделать с помощью данного файла.
Правильный 301 редирект через файл .htaccess
Важно! Если вы хотите, чтобы ваш редирект работал, нужно перед строками, которые рекомендуются ниже по тексту, обязательно прописать
301 Редирект с одной страницы на другую (или сайт)
Для этого в файл .htaccess вносим следующие строки:
Redirect 301 /старая-страница.html http://сайт.рф/новая-страница.html
RedirectPermanent /старая-страница.html http://сайт.рф/новая-страница.html
301 Редирект с www-сайта на сайт без www
Например перенаправление с http://www.site.com на http://site.com. Это очень полезная вещь, часто используется в SЕО
Options +FollowSymLinks
RewriteEngine On
RewriteCond %^www.domain\.com$ [NC]
RewriteRule ^(.*)$ http://domain.com/$1 [R=301,L]
Обратный редирект с домена без www на домен с www
Перенаправление с http://site.com на http://www.site.com (не советуем использовать
Options +FollowSymLinks
RewriteEngine On
RewriteCond %^domain\.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]
Редирект всех посетителей со старого сайта на новый
Как добавить .html в конце URL?
Чтобы при вводе site.com/page или site.com/page/ происходило перенаправление на site.com/page.html пишем в .htaccess следующее:
Как убрать .html в конце URL?
Обратный редирект с site.com/page.html на site.com/page
Как убрать слэш в конце URL?
Например было site.com/page/, стало site.com/page
301 Редирект с одного раздела на другой
Перенаправление всех страниц одного раздела site.com/razdel-1/razdel-2/page на на страницы другого раздела site.com/razdel-1/page
RewriteRule ^blog/raznoe/(.*)$ http://site.ru/blog/$1 [R=permanent,L]
301 Редирект при переезде со старого домена на новый
Следующее правило корректно перенаправит посетителей с каждой конкретной страницы старого сайта на такую же страницу на новом сайте. Например со страницы oldsite.com/page на newsite.com/page
RewriteCond %
^www.oldsite.com$ [NC,OR]
RewriteCond %^test.oldsite.com$ [NC]
RewriteRule ^(.*)$ http://newsite.com/$1 [R=301,L]
Правильное изменение страниц ошибок через .htaccess
Когда пользователь хочет увидеть сайт (отправляет запрос на сервер хостера), то сервер возвращает ему ответ с кодом. Коды 1-399 свидетельствуют о нормальной работе сервера, а коды 400-599 сообщают об ошибке сервера (коды всех ошибок смотрите в спец. статье).
Например, если сервер с вашим сайтом перегружен, или у него происходит перезагрузка, то пользователь увидит текст ошибки (например, 500 Internal Server Error), подумает, что сайт больше не будет работать и больше никогда на него не вернется. Наиболее распространенным решением является составление собственной страницы вместо стандартной 404-ошибки. Эта ошибка показывается пользователю, если введен адрес несуществующей страницы.
Опытные вебмастеры создают свою страницу вместо стандартной, на которой пишут, что человек перешел по несуществующей ссылке и предлагают поискать нужную информацию на сайте, а не уйти с него. Пример нашей 404-страницы можно увидеть здесь. Чтобы показывать пользователям свою страницу ошибки вместо стандартной, нужно создать отдельную страницу (например http://yoursite.com/404.html) и добавить соответствующий код в файл .htaccess. Вот примеры кода, который нужно добавить:
ErrorDocument 400 http://yoursite.com/400.html
ErrorDocument 404 http://yoursite.com/404.html
ErrorDocument 500 http://yoursite.com/500.html
Если вы хотите подставить другую страницу вместо ошибки 403, то нужно указывать еще текстовое сообщение, которое будет показано, например:
ErrorDocument 403 «Sorry can’t allow you access today, see you later alligator :)»
Настройки безопасности сайта через файл .htaccess
Файл .htaccess дает хорошие возможности для улучшения безопасности сайта. Наиболее популярные мы сейчас перечислим:
Защита сайта от скриптовых инъекций
#Включает отслеживание сим-ссылок
Options +FollowSymLinks
#Запускает url_rewriting
RewriteEngine On
#Блокирует все ссылки, содержащие