Файл .htaccess во многом схож с httpd.conf, но при условии, что влияет он только на место своего расположения. Использование файла в той или иной папке прописывается в директиве AllowOverride. Сначала ей присваивают параметр All.
После нахождения сервером представленного файла, ему предстоит выполнять команды, ограничивающие действия ранее прописанных функций с данными. Дабы исключить возможность прочтения файла сервером указывается параметр None.
Документ может быть размещен в любом из каталогов. Каждая прописанная в нем команда будет распространяться на файлы директории. Также файл оказывает влияния на каждую поддиректорию, если не предусмотрено другого документа .htaccess.
Чтобы появилась возможность использования этих документов, следует правильно настроить главный файл конфигурации httpd.conf и прописать значение All в директории AllowOverride.
Использование
С помощью данного документа удается решить следующие задачи и функции:
Аутентификация с процессом авторизации. Чтобы сделать это, необходимо прописать ограничение для конкретных папок. Нередко .htaccess непосредственно связан с .htpasswd – файлом, которых хранит пароли с учетными именами пользователей ресурса.
.htaccess может быть использован для страницы ошибки. Таким образом можно изменять файлы, что появляются совместно с ошибками сервера http.
.htaccess позволяет сделать URL внятный вид. Apache имеет возможности для задействования документа при корректировке длинного и сложносочетаемого урла в легкий, запоминающийся и простой.
.htaccess позволяет контролировать кэш. При помощи файла можно обеспечить контроль обозревателей и прокси за их процессом кэширования. Таким образом удается снизить уровень нагрузки дабы поднять пропускные способности.
Корректировки в опциях Apache с его плагинами. Можно изменить целый ряд функций.
.htaccess позволяет настраивать простые и сложные перенаправляющие директиви (редирект). Все команды отличаются простым синтаксисом. Нет необходимости в обязательном указании статуса, ведь достаточно будет ограничиться возвратным кодом. Можно выполнять разные операции в виде исключения отображений.
.htaccess влияет на обработку серверной ошибки, позволяет разграничить доступ и управлять им. Предусмотрены команды для блокировки некоторых сетевых адресов. Каталоги могут быть защищены с помощью пароля и много чего другого.
Особенности .htaccess для SEO
В .htaccess есть множество функций и опций, которые могут сделать сайт более гибким, безопасным и оптимизированным для SEO. Здесь упоминаются только наиболее широко используемые возможности, которые может использовать любой, кто имеет базовые знания в Интернете.
1. Перенаправления
.htaccess использует перенаправления при поиске любого запроса для конкретной страницы. Фактически файл перенаправляет запрос при входе на тот URL, который указан в документе. Функция полезна, когда вы перемещаете свой сайт на новый домен или меняете существующие имена файлов вашего веб проекта.
Перенаправления полезны, потому что если ваши страницы проиндексированы Google, и вы изменили имя файла/папки или переместили имена файлов страниц, поисковые системы будут использовать .htaccess, чтобы помочь им найти новые страницы. (В отрасли мы называем это перенаправлением 301)
Простое перенаправление
Вот код для простого перенаправления:
Перенаправить /olddirectory/oldfile.html http://yoursite.com/newfile.html
Здесь, когда получен запрос на старый каталог/oldfile.html, он перенаправляется на новую ссылку. В таком случае:
yoursite.com/newfile.html
301 перенаправление
Как упоминалось ранее, переадресация 301 является наиболее эффективным и «дружественным к поисковой системе» методом перенаправления веб-страниц. Это не так сложно реализовать, и он сохранит рейтинг вашей поисковой системы для любой страницы, которую вы перечисляете в файле .htaccess. Когда требуется изменить имена файлов или переместить страницы, это самый безопасный путь. Код «301» интерпретируется онлайн как «перемещен навсегда».
Redirect 301 /oldpage.html http://www.yoursite.com/newpage.html
Перенаправление URL без www на URL с www
Сегодня часто требуется, чтобы домен владельца сайта отображался или перенаправлялся в стандартизованный формат. Как поступают тогда? Домен может отображаться всеми следующими способами:
http://mywebsite.com
www.mywebsite.com
http://www.mywebsite.com
Последний образец считается стандартным, чтобы обеспечить отображение остальных в таком формате используют специальные фрагменты кода:
Параметры + FollowSymLinks
RewriteEngine on
RewriteCond% {HTTP_HOST} ^ mywebsite.com
RewriteRule (. *) Http://www.mywebsite.com/ $ 1 [R = 301, L]
Этот код гарантирует, что URL-адрес стандартизирован для отображения с «www». Оптимизаторам он полезен с позиции возможности отслеживать сами страницы и/или посещения на них.
Зачем вам это нужно?
Если разработчики не предпримут описанного изменения, поисковые системы при сканировании каждой версии страницы запутываются (и это происходит довольно часто). В таких ситуациях боты “думают”, что читают одну и ту же страницу 3 раза. После правильной настройки поисковые системы перемещаются по правильному пути, и никакая одна и та же страница не будет рассматриваться как другой URL.
2. Обработка ошибок
htaccess также предоставляет методы для обработки ошибок, когда сервер получает неверный / ложный запрос.
ErrorDocument 404
Обозначенный документ даст вам возможность обрабатывать запросы для страниц, которые не найдены. Такая ситуация может возникнуть, если ссылка, указывающая на домен, неверна или пользователь изменяет строку URL/строку запроса (после имени домена).
Чтобы указать свои собственные настроенные документы об ошибках, надо просто добавить следующую команду в одной строке в файле htaccess:
Код ErrorDocument /directory/filename.ext
ErrorDocument 404 /errors/notfound.html
Это приведет к тому, что любой код ошибки, приводящий к ошибке 404, выполнит перенаправление на yoursite.com/errors/notfound.html.
Другие важные обработчики ошибок, использующие .htaccess
Когда на сервер приходит плохой запрос,надо использовать:
ErrorDocument 400 /errors/badrequest.html
При попытке получить доступ к странице, где требуется авторизация, следует применять:
ErrorDocument 401 /errors/authreqd.html
При обнаружении внутренней ошибки сервера:
ErrorDocument 500 /errors/serverr.html
3. Безопасность
Предотвращение включения в каталог
Допустим на сайте есть каталог, полный изображений или zip-файлов, которые желательно скрыть от просмотра пользователями. Тогда надо создать файл .htaccess внутри любой папки, чтобы отключить список каталогов, после вставить следующее:
IndexIgnore *
Приведенный ниже код вернет список всех файлов, не оканчивающихся на .jpg или .gif, но все равно будет содержать .txt, .html и прочее.
IndexIgnore * .gif * .jpg
Бывает, что сервер размещения сайта настроен на предотвращение вывода списка каталогов. Но для проекта полезно, если все или один из них отображаются по умолчанию. Тогда можно добавить запись в файл .htaccess для нужного каталога (т.е. для каждого, если надо отобразить все):
-
Опции + Индексы
Блокировка пользователей по IP
Сегодня техническому обслуживанию часто приходиться сталкиваться с ситуацией, когда сайт взламывают, а файлы журнала содержат конкретный IP-адрес. Существуют способы запретить доступ на основе IP-адреса или IP-блокировки.
- заказ разрешить, запретить
- отклонить от 123.45.6.7
- отказать от 012.34.5.
- разрешить от всех
Вышеуказанное блокирует доступ к сайту с 123.45.6.7 и из любого поддомена под
Блок IP 012.34.5.
Вы также можете разрешить или запретить использование доменного имени, а не IP-адреса, например, запретить от .spamsite.com работает для www.spamsite.com или virtual.spamsite.com и далее по аналогии.
Предотвратить хотлинкинг
Горячие ссылки, также известные как «кража полосы пропускания», относятся к прямым ссылкам на изображения, файлы .js и подобное другого сервера. В такой ситуации сервер жертвы лишается пропускной способности, так как нарушителю нравится показывать контент без необходимости платить за доставку. Для защиты пропускной способности сервера размещения сайта надо добавить следующее:
RewriteEngine на
RewriteCond% {HTTP_REFERER}! ^ $
RewriteCond% {HTTP_REFERER}! ^ Http: // (www \.)? Mydomain.com /.*$ [NC]
RewriteRule \. (Gif | jpg | js | css) $ - [F]
При этом дополнительно надо заменить mydomain.com собственным. Приведенный выше код создает неудавшийся запрос, когда происходит горячее связывание указанных типов файлов.
Защита паролем
Вы также можете защитить собственный веб-сайт или отдельные папки паролем с помощью .htaccess и .htpasswd.
4. Оптимизированные для SEO URL
Обычно требуется перенаправить динамический URL-адрес с параметрами в один статический файл:
RewriteEngine On
RewriteRule ^ news.php? Id = (. *) $ /Latestnews.htm [L, R = 301]
В приведенном выше примере запрос к динамическому URL-адресу, например http://www.mysite.com/news.php ? id = 8932 будет перенаправлен на http://www.mysite.com/latestnews.htm
Приведенный ниже код перенаправит productinfo.php? ProdID = 12 на продукция / 12 / или товары / 99 /
RewriteEngine On
RewriteRule ^products/([0-9][0-9])/$ /productinfo.php?prodID=$1
Это будет соответствовать любым URL-адресам, начинающимся с 'products /', за которыми следуют любые две цифры с косой чертой после.
Например, это правило будет соответствовать URL-адресу вида продукция / 12 / или товары / 99 /, и перенаправьте его на страницу PHP.
Чтобы прокомментировать строку в .htaccess, просто начните строку с решетки (#).
Тут еще никто ничего не писал, стань первым!