Содержание

Что вам нужно знать об .htaccess

.htaccess — это дополнительный конфигурационный файл Apache, который позволяет настраивать работу веб-сервера для каждой отдельной директории, не влияя на глобальные настройки Apache. Локальная аналогия httpd.conf. Обычно он отвечает за редиректы и управление доступом к директориям.

Название начинается с точки. Можно сказать, это файл без названия с расширением htaccess. 

Настройки .htaccess действуют на каталог, в котором он расположен, и на все дочерние каталоги. Создайте файл и поместите в нужную вам директорию. Например, в корень проекта.

Теперь нужно его наполнить. Посмотрим, что вообще умеет .htaccess, но для начала изучим пример простейшего редиректа.

mod_rewrite и редиректы

Убедитесь, что в конфигурационном файле Apache httpd.conf активирован mod_rewrite

. То есть, раскомментирована соответствующая строка:

LoadModule rewrite_module modules/mod_rewrite.so

Или, если не хотите открывать в текстовом редакторе файл, можно воспользоваться командой в терминале:

sudo a2enmod rewrite

mod_rewrite — это модуль Apache, предназначенный для преобразования URL-ов. Рассмотрим на примере, как он работает. Допустим, пользователь вводит следующий адрес:

http://www.example.com/page.html

C помощью mod_rewrite можно отправить содержание с другого URL, например такого:

http://www.example.com/public/src/view/page.html

Зачем это нам? Легко догадаться, что писать полный путь до страницы долго и просто неудобно. Посетителям сайта не нужно думать о внутренней структуре сайта — им важно максимально быстро попасть на искомую страницу. (application|modules|system) — [F,L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule .* index.php/$0 [PT,L]

  • php_value установка строковых и числовых значений
  • php_flag устанавливает логические значения (да/нет)

Общий синтаксис директив

php_value/php_flag имя_директивы_php flag/value

Директива short_open_tag разрешает использование короткого синтаксиса для оформления PHP-кода:

php_value short_open_tag 1

upload_max_filesize определяет максимальный размер загружаемого файла.

php_value upload_max_filesize 10M

А post_max_size устанавливает максимально допустимый размер данных, отправляемых методом POST. 

php_value post_max_size 10M

RewriteEngine

Включает/выключает механизм mod_rewrite. index.php main.php [R] # На выходе: «index.php» -> «main.php»

Мы преобразовали index.php в main.php и выполнили редирект.

Важно: RewriteRule обычно принимает два аргумента: что нужно заменить и на что нужно заменить. Если нам не нужно выполнять замену то можно записать в виде:

RewriteRule *regular expression here* -

Символ «-» означает «не преобразовывать»

RewriteBase

После всех RewriteRule, в силу вступает RewriteBase. Если получившийся после преобразований запрос является относительным и отличается от исходного, RewriteBase восстановит его, сделав абсолютным. RewriteBase просто допишет себя к запросу слева. Потому что значение RewriteBase — путь от корня сайта до .htaccess. В нашем случае .htaccess лежит прямо в корне, поэтому:

RewriteBase /

Синтаксис:  RewriteBase URL-path-from-. /([a-z]+)/(.*)$     /home?page=$1&id=$2

/album/123   →   /home?page=album&id=123

[ ]Один из возможных символовc[uoa]t подойдет cut, cot или cat.

Больше regular expressions

Флаги

Синтаксис: RewriteRule regular_expression [флаг1,флаг2,флаг3]

ФлагОписание
[F]Forbidden — возвращает ошибку 403 Forbidden (запрещено).
[L]Last — остановить процесс преобразования на этом месте и не применять больше никаких правил преобразований.
[QSA]Query String Append — этот флаг указывает механизму преобразований на добавление, а не замену, строки запроса из URL к существующей, в строке подстановки.
[PT]PassThrough — останавливает процесс преобразования и передает полученную новую ссылку дальше по цепочке.
(application|modules|system) — [F,L]

переводится как:

«Строку, начинающуюся с application или modules или system не преобразовывать, доступ запретить»

А последние три строки можно интерпретировать как

RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule .* index.php/$0 [PT,L]

«Если запрос не является файлом (!-f) или директорией (!-d), то любое количество любых символов (.*) редиректить по адресу index.php/ после слэша идет полностью результат.* (условие $0), доступ запретить, больше никаких правил преобразования не применять»

  • $0 полностью включает результат регулярного выражения [в нашем случае оно одно .*]
  • $1  включает результат регулярного выражения в первых скобках
  • $N (1<=N<=9), по очереди включает результат выражения в каждой из N скобок

RewriteRule ^/([a-z]+)/(. *)$ /home?page=$1&amp;id=$2 # /album/123 → /home?page=album&amp;id=123 ($N=1, $N=2)

Итого

.htaccess является мощным инструментом локальной настройки Apache для отдельных директорий вашего проекта. С его помощью можно настроить редиректы на сайте, создать красивые URL, запретить доступ к системным каталогам. Про создание красивых адресов для страниц сайта доступно написано в этой статье.

Полезные ссылки

Что такое файл htaccess и зачем он нужен?

Если на вашем сервере установлен веб-сервер Apache, то, скорее всего, вам не раз приходилось видеть файл под названием .htaccess среди списка всех файлов.

Это может выглядеть вот так:

 

Что же это за файл и зачем он нужен?

Подробнее о работе с файлом .htaccess в моем курсе по работе с веб-сервером Apache.

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

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

1) С помощью основного конфигурационного файла httpd.conf.

2) С помощью дополнительного конфигурационного файла .htaccess (обратите внимание, что имя файла htaccess должно начинаться со знака точки «.»).

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

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

Например, вот некоторые действия, которые можно выполнить с помощью файла htaccess:

1) Создать перенаправление (редирект) с одной страницы или папки на другую.

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

3) Запретить доступ к директории или файлам в этой директории, всем или определенным посетителям.

4) Подсказать браузеру, как себя нужно вести при возникновении ошибок (404, 500, 403).

И др. настройки.

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

Как правило, если вы пользуетесь виртуальным хостингом, доступ к файлу httpd.conf для вас будет закрыт, поэтому единственным способом, как вы можете управлять сервером, в этой ситуации, остается файл htaccess.

В итоге, файл htaccess – это файл, который отвечает за настройки (конфигурацию) веб-сервера Apache и позволяет эти настройки применять к отдельно взятым папкам на сервере.

Подробнее о работе с файлом htaccess в моем курсе по работе с веб-сервером Apache.

Что такое htaccess, редирект через htaccess и изменение адресов с mod_rewrite

Файл «.htaccess» (с точкой в начале названия файла) — это конфигурационный файл Apache. Он позволяет изменять глобальные настройки в некоторых конкретных директориях. К примеру, делать переадресацию (редиректы), отключать обработку PHP файлов. Файл «.htaccess» — это текстовый документ, который можно изменить в любом текстовом редакторе. Обычно на хостингах данный файл изначально присутствует в корневой папке сайта. Но вы можете создать несколько файлов «.htaccess» в любых подпапках. Тогда правила будут перезаписываться.

Простой редирект через .htaccess

Разберём одну из самых популярных задачу, которую возлагают на файл «.htaccess» — это переадресация посетителя сайта на другую страницу. Откройте файл .htaccess в корневом каталоге сайта и в самом начале, первой строчкой напишите:
Redirect 301 / https://mousedc. ru
301 означает, что во время перенаправления пользователя сервер выдаст код ответа 301-«Permanent Redirect», что означает, что документ перенесён на новый навсегда.

Некоторые возможные HTTP статусы:
301 — документ перемещен постоянно
302 — документ перемещен временно
303 — смотрите другой документ
403 — документ запрещён к просмотру
404 — документ не найден
410 — документ убран

Слеш «/» после 301 означает, что перенаправление будет срабатывать в любом случае, к какой бы странице или файлу не обратился пользователя. Если вместо слеша поставить адрес файла, к примеру:
Redirect 301 /folder/page1.php https://mousedc.ru
— то будет происходить переадресация только в том случае, если пользователь запросит страницу «/folder/page1.php».

Последним параметром для Redirect стоит адрес страницы, на которую будет сделано перенаправление. В примере это «https://mousedc.ru».

Редирект с регулярным выражением через .

htaccess Существует возможность сделать редирект по регулярному выражению. То есть в случае, если запрашиваемый адрес подходит под регулярное выражение, то будет происходить редирект:
RedirectMatch 301 (.*) https://mousedc.ru$1 
Чтобы понять, что происходит в этом коде, рекомендуем прочитать все статьи о регулярных выражениях, начиная с Регулярные выражения в PHP. Если кратко, то образуется карман (.*), значение которого подставляется в самый конец домена, вместо $1 в строке https://mousedc.ru$. В кармане находится относительный адрес запрашиваемой страницы (то есть без домена).

Использование регулярного выражения полезно для переадресации обращения к файлам. К примеру, сделаем переадресацию при запросе jpg картинок:

RedirectMatch 301 (.*\.jpg)$ https://mousedc.ru/example.jpg 

Изменение адресов и Mod_rewrite

Mod_rewrite — модуль, используемый Apache для преобразования адресов. Во время преобразования адресов происходит обращение к одному файлу, запрашиваемому по другому адресу. product/([0-9]+)/?$ product/index.php?id=$1 [L] При таком правиле пользователь будет заходить на страницу mousedc.ru/product/5/, а сервер будет возвращать содержание страницы mousedc.ru/product/index.php?id=5.

В конце правила можно заметить квадратные скобки. В эти скобки [ ] ставятся флаги. Можно поставить один флаг, к примеру, [L] и несколько флагов через запятую [NC,R=301,L]. Приведём значения самых популярных из них:

  • R — вызывает редирект. Можно казать после этого флага код ответа сервера, например [R=301]
  • L — останавливает процесс изменения адреса. Означает, что следующие RewriteRule после этой строчки не будут выполнены
  • N — перезапускает преобразование адреса заново, начиная с первого правила. Но на этот раз подставляется адрес, изменённый в процессе проделанных преобразований. Будте осторожны, чтобы не сделать бесконечный цикл
  • C — если следующее после этого правило не выполняется, то преобразование будет прервано. products/(.*)$ /products.php [L,R=301] — такое правило может пригодиться, если нужно закрыть давно существующий раздел, но не хочется терять ссылочную массу.

    Файл htaccess — полное руководство по настройке

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

    Что такое .htaccess? (Hypertext Access)

    Это файл-конфигуратор на уровне каталога, который загружается сервером и дает возможность существенно изменить его поведение (перенаправления, включение/отключение определенных функций). Этот файл также позволяет защитить некоторые разделы сайта.

    Из-за специфики названий тип файла htaccess не всегда заметен. Чтобы его увидеть, необходимо активировать “ dot files ” или “ .files ” в вашем программном обеспечении FTP/Cpanel. Если возникают сложности, можно создать и редактировать файл как .txt (просто изменить расширение и название во время загрузки).

    Всегда делайте бэкап htaccess, когда собираетесь внести какие бы то ни было изменения. Если ошибетесь, сайт высветит ошибку 500 Internal Server Error, и для последнего изменения можно будет просто поместить символ # перед кодом в файле htaccess.

    1. Вы можете комментировать ссылки в htaccess с помощью # , количество символов не имеет значения; к примеру, ## или ### можно использовать для описательных комментариев, а один # — для активации/деактивации кода.
    2. Используйте блокнот для редактирования в Windows, это удобно.
    3. Всегда делайте бэкап.
    4. Htaccess применяется к каталогу, в котором находится, и, таким образом, ко всем каталогам уровнем ниже; это значит, что при перемещении в корневой каталог, он сможет управлять всем сайтом.
    5. Ошибки в htaccess провоцируют 500 Internal Server Error ( внутреннюю ошибку сервера), но без паники — восстановите резервную копию или откомментируйте последний код.

    Перезапись кода

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

    ## Rewrite Engine Code ##

    Options +FollowSymLinks

    RewriteEngine on

    Управление ошибками

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

    Вы можете создавать собственные страницы в любом формате PHP/HTML.

    Они не обязательно должны быть в корневом каталоге, но обязательно на одном сервере.

    Если поместите URL целиком, тогда статус 404 не появится, скорее всего будет 301 или 200 Error.

    ErrorDocument 404 http://www.example.com/404.html

    ## Error Handling Codes ##

    ErrorDocument 401 /401.html

    ErrorDocument 403 /403.html

    ErrorDocument 404 /404.html

    ErrorDocument 400 /400.html

    Можно использовать больше или меньше кодов. Полный список кодов ошибок по ссылке Wikipedia.

    Временная блокировка индексации

    К примеру, может понадобиться, чтобы некоторое время люди вначале попадали на промостраницу. (Вы можете использовать index.php и для других целей).

    Это больше относится к сфере общей безопасности и юзабилити, чем к SEO .

    Этот сниппет кода блокирует доступ пользователей к спискам файлов.

    ## Block Index Display ##

    Options All -Indexes

    Set Default Index File

    В любом случае, это удобный код. Нужно только изменить файл; тип файла не обязательно должен быть в HTML.

    ## Set Default Index Files ##

    DirectoryIndex newindex.html

    Защита Htaccess

    Ваш файл htaccess потенциально уязвим, поэтому обезопасьте его.

    ## Secure htaccess file ##

    <Files .htaccess>

    Order Allow,Deny

    Deny from all

    </Files>

    Если у вас WordPress, такой код защитит файл wp-config.php.

    ## Secure wp-config.php ###

    <Files wp-config.php>

    Order Allow,Deny

    Deny from all

    </Files>

    Защита локации паролем

    С помощью htaccess вы можете защитить определенные сегменты сайта. Вот полезный инструмент для создания этих файлов http://www.tools.dynamicdrive.com/password/

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

    Используя тот же метод, что и для htaccess, создайте текстовый файл без названия, тип файла htpasswd. Он будет содержать список имен пользователей и паролей для входа в закрытые разделы, формат такой:

    MyUsername:MyPassword

    Нужно загрузить файл htpasswd в соответствующее место на сервере с помощью любой программы для пересылки файлов, это должен быть каталог не для общего доступа (не помещайте в /www/ или /htdocs/ ). И еще нужно записать путь файла из корневого каталога, это может выглядеть так:

    /private/script/.htpasswd “.

    После загрузки в htaccess добавляется новый раздел.

    AuthName “Restricted Area”

    AuthType Basic

    AuthUserFile /private/script/. http://(.+\.)?livejournal\.com/ [NC]

    RewriteRule .*\.(jpe?g|gif|bmp|png)$ – [F]

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

    «Сохранить как»

    Если у вас блог или другой контентный сайт, определенные файлы будут провоцировать диалог “Save As” (сохранить как), вместо того, чтобы браузер их загружал. Этот код идеален для каталога ресурсов.

    Целесообразнее выбрать определенный подкаталог для кода.

    ## Force a file to download with a “Save As” ##

    AddType application/octet-stream .doc .mov .avi .pdf .xls .mp4

    Перенаправить всех, c сохранением IP

    Этот способ удобен во время внеплановых работ по технической части.

    ## Redirect Everyone but Selected IP Address ##

    ErrorDocument 403 http://www.myoldsite.com

    Order deny,allow

    Deny from all

    Allow from 111.111.111.111

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

    Выборочная блокировка IP

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

    Также вы можете с помощью этого сайта сгенерировать код блокировки любых IP:

    http://www.htaccesstools.com/block-ips/

    ## Block IP Address ##

    order allow,deny

    deny from 127.0.0.1

    deny from 127.0.0.2

    deny from 127.0.0.3

    allow from all

    Раздел 2: перенаправления и перепись

    Htaccess позволяет переписать и изменить URL, заменить автоматически созданные ссылки.

    Перенаправление с http:// на www

    Это старая проблема — добиться, чтобы сайт индексировался и в http://mydomain.com, и в www.mydomain.com.

    Иногда бывает так, что сайт индексируется дважды, что не совсем хорошо в плане SEO.

    Данная часть кода превратит любой запрос для версии http в www.

    ## Redirect non-www to the www version ##

    RewriteCond %{HTTP_HOST} ^example. (.*)$ /downtime.html [R=302,L]

    ## Redirect all Pages to Secure ##

    RewriteCond %{HTTPS} !on

    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

    Стандартное перенаправление 301

    Перенаправление 301 сообщает Google и браузерам, что запрашиваемая страница перемещена в другое место.

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

    Это намного лучше в сравнении со страницей 404, так, по крайней мере, внешние ссылки будут попадать на рабочие страницы.

    ## Standard 301 Redirect for Permanent Changes ##

    redirect 301 /old-page.html http://www.example.com/newpage.html

    Нужно изменить только две ссылки: первая — это старая страница, связанная с htaccess (обычно в корне), и вторая — полная ссылка на новую локацию. У вас может быть столько линий, сколько вы хотите перенаправить, но не стоит перенаправлять один и тот же url несколько раз. /old-folder(.*)$ http://www.example.com/new-page.php

    Опять же, кастомизировать эти коды очень просто. Нужно лишь вписать старый каталог и новые локации . Если хотите перенаправить на новый подкаталог, просто измените окончание url, чтобы там был подкаталог, но проверьте, что вы оставили $1 в первом примере.

    302

    Разница между пренаправлениями 301 и 302 в том, как их фиксируют поисковые роботы. Google вряд ли обновит свой индекс для 302, но для 301 это очень даже вероятно. 302 стоит использовать только тогда, когда изменения временные и вы хотите, чтобы Google их игнорировал. Чтобы превратить перенаправление в 302, просто измените цифру в начале. Это работает применительно ко всем сниппетам кодов перенаправления, где используется 301.

    ## Standard 302 Redirect for Temporary Changes ##

    redirect 302 /old-page.html http://www.example.com/newpage.html

    Изменение типа запросов файлов

    Иногда нужно изменить типы файлов, для лучшего сжатия изображений, или для специального дополнения с php; htaccess справится со всем этим. /]+)\/(.*)$ http://www.example.com/$1/$2/$3 [R=301,L]

    Перенаправление всего домена

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

    У вас должен быть Google Webmaster Tools, установленный на старом домене, затем вы сможете сообщать Google, что перемещаете домены.

    Есть два способа: с сохранением запросов и без. Если у нового домена будет такой же сайт и столько же страниц и ресурсов, тогда лучше сохранить запросы. Другими словами, пользователь, запрашивающий /best-page.html на старом сайте, увидит best-page.html на новом.

    Вы можете сделать полное перенаправление домена без сохранения запросов.

    По сути, нужно отдельно перенаправить разделы веб-сайта на соответствующие разделы нового сайта, но есть более простой способ.

    ## Redirect an Entire Domain – No Preservation ##

    Redirect 301 / http://www.newdomain.com

    Перепись динамического URL

    Большинство динамических URL выглядят примерно так:

    http://www. /]+)

    RewriteCond %{QUERY_STRING} !foo=bar

    Задается маппинг старого URL на новом.

    Здесь три линии; первая определяет место старого URL на новом, вторая — место 1-ой строки запросов, третья — точка остановки, чтобы избежать беспрерывного перенаправления.

    Первая линия позволяет установить формат новой страницы, в нашем случае это http://www.mysite.com/posts-about-widgets.php.

    Вы можете изменить первую часть URL.

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

    В этом примере — посты из категории виджетов, поэтому нужны соответствующие ключевые слова в URL.

    PHP — тип файла, который используется в данном случае, но это может быть html или htm.

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

    Вторая линия содержит ссылку на переменную, понадобится изменить поле — добавить ваш URL, а все остальное оставить. old\.php$ /new-folder/%1/? [L,R=301]

    Здесь все так, как и прежде, но в данном случае мы назвали первый подкаталог вручную и позволили полю стать вторым подкаталогом.

    Раздел 3: скорость и тонкая настройка

    Последний раздел этого руководства посвящен тонкой настройке, которая позволяет улучшить скорость и производительность сайта. Многие из этих сниппетов кода зависят от активности отдельных модулей или разрешений, это значит, что разные серверы и хосты могут вести себя по-разному.

    GZIP compression

    GZIP compression — серверная функция, которая уменьшает вес веб-страниц и скриптов прежде, чем они отправляются в браузер.

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

    Есть несколько вариантов активировать GZIP. Не нужно изменять код — просто скопируйте и вставьте.

    На этом сайте можно проверить, активирован ли GZIP на вашем ресурсе, и сколько времени/места сэкономлено. Mozilla/4.0[678] no-gzip

    BrowserMatch bMSIE !no-gzip !gzip-only-text/html

    Активация кэширования

    Кэширование позволяет постоянным посетителям не загружать повторно каждый элемент сайта. Если у вас WordPress, тогда можно взять несколько плагинов, например WP Hyper Cache.

    Если у вас статический сайт, htaccess дает возможность применить кэширование. Стоит все перепроверить. Если у вас нестандартная CMS, или какой-либо динамический контент, ошибки с кэшированием могут привести к тому, что сайт перестанет обновляться. Поэтому стоит консультироваться с разработчиками.

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

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

    ## Enable Caching ##

    ## Files to Cache for One Month ##

    <FilesMatch “\. (flv|gif|jpg|jpeg|png|ico|swf)$”>

    Header set Cache-Control “max-age=2592000”

    </FilesMatch>

     

    ## Files to Cache for One Week ##

    <FilesMatch “\.(js|css|pdf|txt)$”>

    Header set Cache-Control “max-age=604800”

    </FilesMatch>

    ## Files to Cache for One Day ##

    <FilesMatch “\.(html|htm)$”>

    Header set Cache-Control “max-age=43200”

    </FilesMatch>

     

    ## Disable cache for script files ##

    <FilesMatch “\.(pl|php|cgi|spl|scgi|fcgi)$”>

    Header unset Cache-Control

    </FilesMatch>

    GZIP и кэширование существенно улучшают производительность сайта.

    Минимизация 404 за счет проверки грамматических ошибок

    Check Spelling — это модуль сервера Linux Server Module. Check Spelling проверяет сервер на предмет наличия подобных URL.

    К примеру, пользователь допускает ошибку, вписывая в браузер такой адрес:

    http://www. mysite.com/caje/red.html

    Но на самом деле он/она хотел написать:

    http://www.mysite.com/cake/red.html

    Check Spelling фиксирует такую незначительную ошибку и исправляет ее (если, конечно, не существует caje/red.html). Также учитывается состояние регистра строчных и прописных символов в URL.

    ##Make Linux correct case sensitive urls/slight typos in urls##

    CheckSpelling On

    что это за файл. Настройка перенаправление

    Hypertext access (сокращенно «.htaccess») – в дословном переводе «доступ к гипертексту». Является документом дополнительной конфигурации HTTP-сервера Apache с его аналогами. При помощи представленного файла предоставляется возможность выполнения дополнительных команд в отдельных директориях – папках. За счет этого открываются возможности для урегулирования управления доступом, перенаправления, переназначения любых файлов. При этом отсутствует потребность в работе с серверными файлами конфигурации и правках в них.

    Файл .htaccess во многом схож с httpd.conf, но при условии, что влияет он только на место своего расположения. Использование файла в той или иной папке прописывается в директиве AllowOverride. Сначала ей присваивают параметр All.

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

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

    Чтобы появилась возможность использования этих документов, следует правильно настроить главный файл конфигурации httpd.conf и прописать значение All в директории AllowOverride.

    Использование

    С помощью данного документа удается решить следующие задачи и функции:

    • Аутентификация с процессом авторизации. Чтобы сделать это, необходимо прописать ограничение для конкретных папок. Нередко .htaccess непосредственно связан с .htpasswd – файлом, которых хранит пароли с учетными именами пользователей ресурса.
    • .htaccess может быть использован для страницы ошибки. Таким образом можно изменять файлы, что появляются совместно с ошибками сервера http.
    • .htaccess позволяет сделать URL внятный вид. Apache имеет возможности для задействования документа при корректировке длинного и сложносочетаемого урла в легкий, запоминающийся и простой.
    • .htaccess позволяет контролировать кэш. При помощи файла можно обеспечить контроль обозревателей и прокси за их процессом кэширования. Таким образом удается снизить уровень нагрузки дабы поднять пропускные способности.
    • Корректировки в опциях Apache с его плагинами. Можно изменить целый ряд функций.
    • .htaccess позволяет настраивать простые и сложные перенаправляющие директиви (редирект). Все команды отличаются простым синтаксисом.
      Нет необходимости в обязательном указании статуса, ведь достаточно будет ограничиться возвратным кодом. Можно выполнять разные операции в виде исключения отображений.
    • .htaccess влияет на обработку серверной ошибки, позволяет разграничить доступ и управлять им. Предусмотрены команды для блокировки некоторых сетевых адресов. Каталоги могут быть защищены с помощью пароля и много чего другого.

    Основы .htaccess: как использовать и примеры

    Что такое файл .htaccess?

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

    Где находится файл .htaccess?

    В корневой папке вашего веб-хоста должен быть один файл .htaccess — папка (обычно / public_html или / www), в которой хранится контент вашего веб-сайта.

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

    Например, у вас могут быть отдельные файлы .htaccess в корневой папке, а другой — в подпапке. Это позволяет вам устанавливать различное поведение сервера в зависимости от структуры каталогов.

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

    Я не могу найти свой файл .htaccess

    Прежде всего .htaccess — это файл Apache, это означает, что вы можете найти его только на сервере Apache. * Прекратите поиск, если ваш хост работает на другом программном обеспечении веб-сервера (например, Microsoft IIS или NGINX).

    Имена файлов, начинающиеся с точки, обычно скрыты. Это означает, что они обычно не видны по умолчанию.

    Чтобы просмотреть этот файл, просто включите «Показать скрытые файлы» в своем FTP-клиенте или диспетчере файлов хоста (см. Изображение ниже).

    Пример — отобразите скрытые файлы, включив этот параметр в диспетчере файлов cPanel.

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

    Файлы .htaccess — это файлы конфигурации сервера, и, поскольку они напрямую связаны с поведением, нет необходимости запускать что-либо при каждом запросе. Поэтому он гораздо менее ресурсоемкий, как, например, использование плагина.

    * Примечание: Apache имеет о 30% рыночного поглощения на основе отчета W3Techs. Самые популярные хостинговые бренды, упомянутые на WHSR — A2 хостинг, BlueHost, GreenGeeks, Hostinger, InMotion хостинг; работают на Apache. 

    Для чего .htaccess?

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

    Например, на основе инструкций, содержащихся в файле, Apache может автоматически загружать пользовательские страницы ошибок, если посетители вашего сайта ищут ресурс, которого там нет. Каждый тип ошибки имеет свой собственный код, и каждый из них может быть перенаправлен индивидуально.

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

    1. Управление пользовательскими страницами ошибокПримеры некоторых творчески настроенных страниц ошибок 404

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

    Допустим, вы разработали пользовательская страница ошибки 404 называется «404.html» и сохраняет его в подпапке в вашем веб-каталоге с именем «error_pages». Используя следующую строку кода в .htaccess, вы можете вызывать эту страницу всякий раз, когда посетитель обнаруживает ошибку 404;

    ErrorDocument 404 /error_pages/404.html

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

    • ошибка 400, неверный запрос
    • 403 — Запрещено
    • 404 — Файл не найден
    • 500 — Внутренняя ошибка сервера
    • сервис 503 недоступен

    2. Обрабатывать перенаправления

    Могут быть случаи, когда вы хотите установить общее перенаправление, чтобы вы могли направлять своих посетителей на определенные страницы без их ведома. Например, если вы изначально использовали HTTP, но с тех пор установил SSL и перешел на HTTPSвы бы хотели, чтобы все ваши пользователи использовали HTTPS-версию вашего сайта. (. *) $ Http://newdomain.com/$1 [L, R = 301, NC]

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

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

    Используя перенаправление, вы можете легко перемещать контент и сообщать веб-сканерам, где найти контент, который они ранее проиндексировали. Для этого используйте;

    Перенаправить 301 / архив / / прошлые записи /

    Инструкция 301 не только позволяет пользователям беспрепятственно получать доступ к старому контенту, но и служит инструктором для сканеров, что контент перемещается навсегда. Это помогает им, позволяя им быстро переиндексировать ссылки.

    3. Повысить безопасность вашего сайта

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

    Защита паролем каталогов

    Для этого вам понадобятся два файла: .htaccess и .htpasswd. Файл .htpasswd содержит некоторое шифрование, поэтому используйте такой инструмент, как Htpasswd Генератор создать файл. Файл .htaccess должен включать этот код;

    AuthType Basic AuthName "Область, защищенная паролем" AuthUserFile /path/to/.htpasswd Требовать действительного пользователя

    Отключить просмотр каталогов

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

    # Отключить опции просмотра каталогов -Indexes

    Блокировать конкретные IP-адреса

    Чтобы заблокировать посещение вашего сайта отдельными IP-адресами, добавьте следующий код в ваш файл .htaccess;

    Запретить от XXX.XXX.XXX.XXX

    Где вы заменяете XXX числовыми значениями IP Существуют варианты этого кода, которые также могут использоваться для блокировки диапазона IP-адресов или нескольких IP-адресов. Http: // (www \.) Example.com/.*$ [NC] RewriteRule \. (Gif | jpg) $ http: // www .example.com / stoptealing.gif [R, L]

    Который может отображать альтернативное изображение на сайте-нарушителе, например так:

    5. Защита файла .htaccess

    Теперь вы понимаете, насколько полезным инструментом действительно является файл .htaccess. Поскольку вы пришли к этому пониманию, пришло время подумать о защите этого ценного файла! Если вы используете файл .htpasswd, то вы, вероятно, захотите это скрыть, и способ сделать и то, и другое;

    # защитить .htaccess и .htpasswd Заказать разрешить, запретить Отклонить от всех Удовлетворить все

    Обратите внимание, что на большинстве защищенных серверов эти файлы уже защищены. Прежде чем добавить этот код, проверьте, можете ли вы получить доступ к файлам в окне браузера. Просто введите URL-адрес и добавьте / .htaccess, чтобы увидеть, можете ли вы просмотреть файл. Если вы не можете, вам, скорее всего, будет показано сообщение об ошибке.

    6. Настройка часового пояса вашего сервера

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

    SetEnv TZ America / yourtimezone

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

    Охватите силу .htaccess

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

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

    Инструкция для веб-мастеров: секреты настройки .htaccess файла

    Для перенаправления всех страниц сайта с http на https достаточно добавить правило в начало файла .htaccess, который расположен в корневой папке сайта.

    Данным правилом мы запретим доступ сайту или директории сайта, где .htaccess расположен с подобными правилами, для всех, кроме IP-адреса 123.123.123.123. По аналогии можно указывать несколько строк с IP-адресами, которым доступ нужно разрешить.

    Require all denied
    Require ip 123.123.123.123

    Данным правилом мы наоборот закрываем доступ для конкретного IP-адреса 123.123.123.123:

    Require all granted
    Require not ip 123.123.123.123

    Ограничение доступа к конкретному файлу, в примере файл cron.php:

    <Files "cron.php">
    Require all denied
    Require ip 123.123.123.123
    </Files>

    Если вышеуказанных директив нет, то посредством файла .htaccess доступ к сайту не ограничивается.

    Редирект 301

    Редирект 301 с главной страницы сайта на URL http://your_site. /])$ $1/ [L,R=301]

    Кодировка сайта

    В .htaccess также можно принудительно установить кодировку для сайта используя директиву AddDefaultCharset и передавая ей один параметр — желаемую кодировку, к примеру:

    AddDefaultCharset UTF-8

    или

    AddDefaultCharset WINDOWS-1251

    Или можно отключить установку кодировки web-сервером использую директиву:

    CharsetDisable on

    Переопределение страниц ошибок

    Эти правила заменят стандартные страницы ошибок на указанные пользовательские страницы. Ссылка http://your_site.ua/error_page_404.html — и другие нужно заменить на ваши ссылки страниц ошибок:

    ErrorDocument 404 http://your_site.ua/error_page_404.html
    ErrorDocument 403 http://your_site.ua/error_page_403.html
    ErrorDocument 500 http://your_site.ua/error_page_500.html

    Указание нестандартного индексного файла

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

    DirectoryIndex main.php

    Вывод

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

    Знакомство с файлом .htaccess и принципом его работы

    Знаете ли вы, что ваш файл .htaccess влияет на SEO вашего сайта? Оно делает. И эффект может быть огромным.

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

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

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

    Что мы будем покрывать?

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

    Обратите внимание на следующие темы, которые мы рассмотрим.

    • Сканирование / индексирование

    • Скорость страницы

    • Перенаправляет

    • Основы

    • Удобные URL-адреса

    Что есть.htaccess?

    Файл .htaccess (сокращение от «гипертекстовый доступ») — это файл конфигурации распределенного сервера. Это означает, что он настраивает сервер только в каталоге, в котором находится файл .htaccess.

    Файл .htaccess позволяет вам установить конфигурации сервера для определенного каталога. Это может быть корневой каталог вашего веб-сайта или каталог / images или / downloads .

    Используется на веб-сервере Apache. Его также можно использовать на нескольких других веб-серверах, таких как LiteSpeed.Однако это руководство написано не для LiteSpeed. Есть некоторые параллели между файлами .htaccess Apache и LiteSpeed, но это руководство не следует использовать для LiteSpeed.

    Как работает .htaccess?

    Файл .htaccess помещается в каталог на веб-сервере. Когда это будет сделано, он будет выполнен веб-сервером Apache при запросе из этого каталога. Обычно файл .htaccess помещают в корневой каталог сайта, например. / public_html . Это настраивает веб-сервер для всего веб-сайта.Немного реже размещать файлы .htaccess в подкаталогах, но это практикуется и имеет некоторые специфические применения

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

    Предупреждение:

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

    Было ли это полезно? Поделиться этим.

    Учебное пособие по

    Apache HTTP Server: файлы .htaccess

    Файлы .htaccess позволяют выполнять настройку изменяется для каждого каталога.

    См. Также

    Вам следует избегать использования файлов .htaccess полностью, если у вас есть доступ к Файл конфигурации главного сервера httpd. Использование файлов .htaccess замедляет работу вашего HTTP-сервера Apache. Любую директиву, которую вы можете включить в файл .htaccess , лучше установить в блоке Directory , так как она будет иметь тот же эффект с лучшей производительностью.

    .htaccess файлов (или «файлы распределенной конфигурации») предоставляют возможность вносить изменения в конфигурацию для отдельных каталогов.А файл, содержащий одну или несколько директив конфигурации, помещается в конкретный каталог документов, и директивы применяются к этому каталог и все его подкаталоги.

    Примечание:

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

     AccessFileName ".config "

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

    Например, если вы посмотрите документацию для AddDefaultCharset директиве, вы обнаружите, что это разрешено в .htaccess файлы. (См. Строку Context в сводке директивы.) Строка Override читает FileInfo . Таким образом, у вас должно быть не менее AllowOverride FileInfo , чтобы эта директива была соблюдается в файлах .htaccess .

    Если вы не уверены, разрешена ли конкретная директива в .htaccess , посмотрите документацию для этого директиву и проверьте строку контекста на наличие «. htaccess».

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

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

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

    Есть две основные причины избегать использования .htaccess файлов.

    Первое из них — производительность. Когда AllowOverride настроен на использование файлов . htaccess , httpd будет поищите в каждом каталоге.htaccess файлов. Таким образом, разрешение файлов .htaccess приводит к снижению производительности, независимо от того, используете ли вы их вообще! Так же .htaccess файл загружается каждый раз, когда документ просил.

    Также обратите внимание, что httpd должен искать файлы .htaccess во всех каталогах более высокого уровня, чтобы иметь полный набор директивы, которые он должен применять. (См. Раздел о том, как директивы.) Таким образом, если файл запрашивается из каталог / www / htdocs / example , httpd должен искать следующие файлы:

    /.htaccess
    /www/.htaccess
    /www/htdocs/.htaccess
    /www/htdocs/example/.htaccess

    Итак, для каждого доступа к файлу из этого каталога есть 4 дополнительные обращения к файловой системе, даже если ни один из этих файлов не настоящее время. (Обратите внимание, что это будет только в том случае, если .htaccess файлов были включены для /, которые обычно бывает не так.)

    В случае директив RewriteRule , в .htaccess , эти регулярные выражения должны быть перекомпилируется при каждом запросе к каталогу, тогда как в основном контекст конфигурации сервера они компилируются один раз и кэшируются. К тому же сами правила сложнее, так как нужно обойти ограничения, связанные с контекстом для каждого каталога и mod_rewrite . Обратитесь к Руководству по перезаписи для получения дополнительной информации подробно по этому поводу.

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

    Обратите внимание, что это полностью эквивалентно установке .htaccess файл в каталоге / www / htdocs / example , содержащий директиву, и поместить ту же директиву в раздел каталога на вашем основном сервере конфигурация:

    .htaccess файл в / www / htdocs / example :

    Содержимое файла .htaccess в

    / www / htdocs / example
     AddType text / example ".exm" 

    Раздел из вашего

    httpd.conf файл
     <Каталог "/ www / htdocs / example">
        AddType текст / пример ".exm"
     

    Однако, поместив эту конфигурацию в конфигурацию вашего сервера файл приведет к меньшему снижению производительности, поскольку конфигурация загружается один раз при запуске httpd, а не каждый раз, когда файл просил.

    Использование файлов .htaccess можно полностью отключить установив AllowOverride директива к нет :

     AllowOverride Нет 

    Директивы конфигурации, найденные в .htaccess файл применяются к каталогу, в котором находится файл .htaccess найден и во все его подкаталоги. Однако важно чтобы также помнить, что могло быть файлов .htaccess в каталогах выше. Директивы применяются в том порядке, в котором они найдены. Следовательно, файл .htaccess в конкретном каталог может переопределять директивы, найденные в файлах .htaccess находится выше в дереве каталогов.А те, в свою очередь, могли переопределенные директивы, найденные еще выше или на главном сервере сам файл конфигурации.

    Пример:

    В каталоге / www / htdocs / example1 у нас есть . htaccess файл, содержащий следующее:

     Опции + ExecCGI 

    (Примечание: у вас должны быть действующие « AllowOverride Options » чтобы разрешить использование директивы « Опции » в .htaccess файлов.)

    В каталоге / www / htdocs / example1 / example2 у нас есть файл .htaccess , содержащий:

     Опции Включает 

    Из-за этого второго файла .htaccess в каталоге / www / htdocs / example1 / example2 , выполнение CGI не выполняется разрешено, поскольку действует только Опции включает , что полностью отменяет любые предыдущие настройки, которые могли быть место.

    Слияние .htaccess с основным файлы конфигурации

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

     <Каталог "/ www / htdocs">
        AllowOverride All
    
    
    <Местоположение "/">
        Параметры + Включает NoExec -ExecCGI
     

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

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

    .htaccess содержимое файла:

     AuthType Basic
    AuthName «Требуется пароль»
    AuthUserFile "/www/passwords/password.file"
    AuthGroupFile "/www/passwords/group.file"
    Требовать администраторов группы 

    Обратите внимание, что AllowOverride AuthConfig должен действовать. чтобы эти директивы имели какой-либо эффект.

    См. Руководство по аутентификации для более полное обсуждение аутентификации и авторизации.

    Еще одно распространенное использование файлов .htaccess — включение Включения на стороне сервера для определенного каталога. Это можно сделать с помощью следующие директивы конфигурации, помещенные в . htaccess файл в желаемом каталоге:

     Опции + Включает
    AddType text / html shtml
    Обработанный сервером файл shtml 
    AddHandler

    Обратите внимание, что Параметры AllowOverride и AllowOverride FileInfo должны действовать, чтобы эти директивы имели эффект.(. +) \. jpg «» $ 1.png «

    В файле .htaccess в каталоге документов ведущая косая черта удаляется из значения, предоставленного в RewriteRule , а в images Подкаталог , / images / удален из Это. Таким образом, ваше регулярное выражение должно опускать эту часть как Что ж.

    Обратитесь к документации mod_rewrite для дополнительные сведения об использовании mod_rewrite .

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

     Опции + ExecCGI
    AddHandler cgi-скрипт cgi pl 

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

     Опции + ExecCGI
    SetHandler cgi-скрипт 

    Обратите внимание, что Параметры AllowOverride и AllowOverride FileInfo должны действовать, чтобы эти директивы имели эффект.

    Пожалуйста, см. Учебник CGI для получения дополнительных полное обсуждение программирования и настройки CGI.

    Когда вы помещаете директивы конфигурации в .htaccess файла, и вы не получите желаемого эффекта, существует ряд вещи, которые могут пойти не так.

    Чаще всего проблема в том, что AllowOverride не установите так, чтобы ваши директивы конфигурации соблюдались. Делать убедитесь, что у вас нет действующего AllowOverride None для рассматриваемой области файла.Хорошая проверка — положить мусор в вашем файле .htaccess и перезагрузите страницу. Если ошибка сервера не генерируется, то у вас почти наверняка есть AllowOverride Отсутствуют действующие .

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

    [Пт, 17 сен, 18:43:16 2010] [предупреждение] [клиент 192.168.200.51] /var/www/html/.htaccess: DirectoryIndex здесь не допускается

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

    В качестве альтернативы он может сообщить вам, что у вас есть синтаксическая ошибка в вашем использование самой директивы.

    [Сб, 09 августа, 16:22:34 2008] [предупреждение] [клиент 192.168.200.51] /var/www/html/.htaccess: RewriteCond: неверные разделители флагов

    В этом случае сообщение об ошибке должно относиться к конкретная синтаксическая ошибка, которую вы допустили.

    Как перенаправить мой сайт с помощью файла .htaccess?

    Последнее изменение: 6 марта 2020 г.

    Обзор

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

    ПРОЧИТАЙТЕ Вначале

    В качестве файла конфигурации .htaccess очень мощный. Даже малейшая синтаксическая ошибка (например, отсутствие пробела) может привести к тому, что ваш контент будет отображаться некорректно или вообще.

    Поскольку .htaccess является скрытым системным файлом, убедитесь, что ваш FTP-клиент настроен для отображения скрытых файлов. Обычно это опция в настройках / опциях программы.

    Эта статья предоставлена ​​любезно. Установка, настройка и устранение неполадок сторонних приложений выходит за рамки поддержки, предоставляемой (mt) Media Temple. Пожалуйста, найдите время, чтобы просмотреть Заявление о поддержке.

    Инструкции

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

    ПРИМЕЧАНИЕ:

    Причина, по которой вы должны сохранить файл как htaccess.txt, заключается в том, что многие операционные системы и приложения FTP не могут читать или просматривать .htaccess файлов по умолчанию. После загрузки на сервер вы можете переименовать файл в .htaccess .

    2. Отредактируйте содержимое файла htaccess.txt. Ниже приведены несколько примеров переадресации, которые вы можете использовать. Они помечены в соответствии с тем, какие действия они будут выполнять.

    301 (Постоянный) Перенаправление:

    Используйте 301 редирект .htaccess, чтобы постоянно указывать весь сайт на другой URL. Это наиболее распространенный тип перенаправления, который полезен в большинстве ситуаций.В этом примере мы выполняем перенаправление на домен example. com.

    При добавлении следующего в файл .htaccess вашего веб-сайта обязательно замените example.com своим собственным доменным именем.

      # Это позволяет перенаправить весь ваш сайт на любой другой домен
    Перенаправить 301 / http://example.com/
      
    302 (временное) перенаправление:

    Укажите для всего сайта другой временный URL. Это полезно для целей SEO, если у вас есть временная целевая страница и вы планируете вернуться к основной целевой странице позже:

      # Это позволяет перенаправить весь ваш сайт на любой другой домен
    Перенаправить 302 / http: // example./? $ / folder2 /
     

    Перенаправление на определенную страницу индекса:
      # Обеспечить определенную страницу индекса (установить обработчик по умолчанию)
    DirectoryIndex index.html
      
    Перенаправить сообщение об ошибке:

    Вместо вывода страницы с ошибкой 404 Not Found, сайт будет перенаправлен на домашнюю страницу:

     # Перенаправить страницы ошибок 404 на домашнюю страницу 
    ErrorDocument 404 http://example. com/
    Перенаправить несуществующую страницу в индекс.php
     # Перенаправить несуществующие страницы на index.php 
    Options + SymLinksIfOwnerMatch RewriteEngine On RewriteCond% {REQUEST_FILENAME}! -F RewriteCond% {REQUEST_FILENAME}! -D RewriteRule. /index.php [L]

    3. Загрузите этот файл и переименуйте его в .htaccess .

    ПРИМЕЧАНИЕ:

    • При использовании текстового редактора обязательно сохраните файл как обычный текст.
    • Пути к месту сохранения этого файла можно найти в этой статье: Системные пути.
    • Полное руководство по директивам Apache, которые можно использовать в файлах .htaccess, можно найти здесь: http://httpd.apache.org/docs/mod/core.html.

    Более эффективные изменения URL с помощью mod_rewrite

    Если вам нужно внести сложные изменения в способ отображения вашего URL-адреса, вам следует посетить Использование правил перезаписи .htaccess. Вы можете сделать что-то вроде добавления «www» в начало вашего URL-адреса, перенаправить все запросы во вложенную папку, но сохранить остальную часть URL-адреса и т. Д.

    См. Также

    .Обзор htaccess — База знаний DreamHost

    Обзор

    Файл .htaccess определяет, как Apache взаимодействует с вашим сайтом. Когда файл .htaccess помещается в каталог вашего домена, файл .htaccess обнаруживается и запускается веб-сервером Apache.

    Файл .htaccess обычно используется для следующих целей:

    Использование файла .htaccess на вашем веб-сайте вряд ли вызовет какие-либо проблемы. Однако могут возникнуть ошибки, если правила, введенные в файл, неверны, что может привести к тому, что ваш сайт может внезапно отобразить ошибку 500.Если произойдет что-то подобное, вы можете закомментировать правила / строки, которые вы только что добавили, поставив «#» перед каждой строкой. Повторяйте это, пока не найдете строку, вызывающую ошибку.

    Создание файла .htaccess на веб-сервере DreamHost

    Вы можете создать .htaccess прямо на своем веб-сервере, используя FTP-клиент или SSH. Ознакомьтесь со следующими статьями, чтобы узнать, как использовать любой из вариантов для создания файла:

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

    Убедитесь, что при создании файла .htaccess вы делаете НЕ добавляете расширение файла. Этот файл должен называться только .htaccess без расширения.

    Какие разрешения должен иметь файл?

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

    Куда поместить файл .htaccess?

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

    Файл .htaccess может управлять поведением каждого каталога в папке, в которой он находится. По этой причине он также может находиться в домашнем каталоге вашего пользователя. Опять же, это зависит от того, для чего вы используете файл .htaccess.

    Нужно ли мне перезагружать сервер или веб-сайт после создания файла.htaccess файл?

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

    См. Также

    Внутренние ссылки

    Внешние ссылки

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

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

    О файлах .htaccess

    Файл .htaccess — это простой текстовый файл конфигурации, который позволяет настраивать конфигурацию веб-сервера. Когда веб-сервер Apache обрабатывает входящий запрос клиента на файл, он ищет файл .htaccess в том же каталоге. Если файл .htaccess существует, Apache считывает директивы в файле и отменяет глобальную конфигурацию сервера. Любые директивы, определенные в файле .htaccess , применяются к каталогу, в котором находится файл, и ко всем подкаталогам под ним.

    Вы можете использовать директивы в файлах .htaccess для перенаправления запросов на разные URL-адреса, управления списками каталогов, указания настраиваемых документов об ошибках и т. Д. В конфигурациях веб-сервера хостинга A2 используется директива AllowOverride All для обеспечения максимальной гибкости вашего веб-сайта.

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

    Защита содержимого файла .htaccess

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

    Для этого добавьте в файл .htaccess следующие директивы:

     # Запретить Apache работать.\ .htaccess ">
        Заказать разрешить, запретить
        Запретить всем
     

    Теперь посетители, которые пытаются просмотреть файл .htaccess напрямую, получают ошибку «403 запрещено» в своем веб-браузере.

    Дополнительная информация

    Как создать файл .htaccess и для чего его можно использовать? — Справочный центр Hostway

    Назначение файла . htaccess — предоставить средства для настройки Apache для пользователей, которые не могут изменять основной файл конфигурации.Эта статья применима только к веб-сайтам Linux с тарифными планами .

    Эта статья содержит следующие разделы:

    I. Что такое файл .htaccess?
    Файл .htaccess — это файл конфигурации, который включает дополнительные функции веб-сервера Apache. Его можно добавить в папку web , и он повлияет на все содержимое вашего веб-сайта. Вы также можете добавить дополнительные файлы .htaccess в подпапку вашей папки web , чтобы активировать отдельные функции только для этой подпапки.

    II. Как создать и загрузить файл .htaccess?
    Вы можете создать такой файл в текстовом редакторе (Блокнот, MS Word и т. Д.). Вы должны назвать файл точно .htaccess , иначе он не будет работать. Наличие точки перед именем делает файл скрытым.

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


    НАЗАД НАЗАД

    III. Для чего можно использовать файл .htaccess?

    1. 301 перенаправление:

    Одно из наиболее распространенных применений файла .htaccess — создание перенаправления URL-адресов.(. *) $ http://seconddomain.com/$1 [L, R = 301, NC]

    В качестве альтернативы вы можете использовать этот код:

    Перенаправление 301 / http://domain.com


    2. WWW и не-WWW:

    Вы можете заставить браузер отображать либо версию www.domain.com URL-адреса вашего веб-сайта, либо только domain. .(. *) $ http://domain.com/$1 [L, R = 301, NC]


    3. Блокировка определенного IP-адреса или диапазона IP-адресов:

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

    Order Deny, Allow
    Deny from X.X.X.X (где X.X.X.X — конкретный IPv4-адрес)


    Если вы хотите заблокировать более одного IP-адреса, вам нужно будет указать каждый из них в отдельной строке:

    Order Deny, Allow
    Deny from X.X.X.X
    Запретить с Y.Y.Y.Y


    Чтобы ограничить доступ из определенных стран, вы должны получить диапазоны IP-адресов, которые назначены этой конкретной стране. Существует несколько веб-сайтов (например, ip2location.com), которые позволяют вам автоматически генерировать эти директивы .htaccess в зависимости от страны или стран, которые вы укажете.

    Обратите внимание, что этот метод не является эффективным на 100%, поскольку назначения IP-адресов могут изменяться, а диапазоны IP-адресов могут перекрываться.Тем не менее, этот метод блокирует большую часть трафика из указанных стран.


    4. Изменение домашней страницы по умолчанию:

    Если в настоящее время у вас есть веб-сайт, целевая страница которого по умолчанию — index.html, и вы хотите изменить его (например, страница сайта WordPress по умолчанию — index.php), но вы хотите сохранить оба файла (index.html и index.php) на вашем хостинге вы можете изменить целевую страницу по умолчанию, добавив в файл .htaccess следующую строку:

    DirectoryIndex индекс.(. *) $ https: //% {HTTP_HOST} / $ 1 [R = 301, L]

    6. Пользовательская страница ошибки:

    Вы также можете использовать файл .htaccess для настраиваемой страницы ошибки 404. Текст, который вам понадобится в файле:

    ErrorDocument 404 /yourcustomer404page. html

    НАЗАД

    Что я могу сделать с файлом .htaccess?

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

    1) Защитите свое приложение паролем

    a) Найдите путь к папке public_html вашего приложения, запустив pwd из оболочки.

    [wjdjmhbxbg]: public_html $ pwd / home / 08518-6164.cloudwaysapps.com/wjdjmhbxbg/public_html [wjdjmhbxbg]: public_html $

    [wjdjmhbxbg]: public_html $ pwd

    /home/08518-6164.cloudwaysapps.com/wjdjmhbxbg/public_html

    [wjdjmhbxbg]: public_html $

    б) Добавьте в файл . htaccess следующий код (обновите AuthUserFile до указанного выше пути):

    AuthName «Добавьте сюда ваше сообщение для входа.» AuthType Basic AuthUserFile /home/08518-6164.cloudwaysapps.com/wjdjmhbxbg/public_html/.htpasswd требуется имя пользователя

    AuthName «Добавьте сюда свое сообщение для входа».

    AuthType Basic

    AuthUserFile /home/08518-6164.cloudwaysapps.com/wjdjmhbxbg/public_html/.htpasswd

    требуется имя пользователя

    c) Создайте файл паролей.htpasswd и добавьте пользователя, используя следующий код (убедитесь, что вы находитесь в папке public_html приложения, которое хотите защитить паролем):

    [wjdjmhbxbg]: public_html $ htpasswd -c .htpasswd имя-пользователя Новый пароль: Введите повторно новый пароль: Добавление пароля для имени пользователя-пользователя [wjdjmhbxbg]: public_html $

    [wjdjmhbxbg]: public_html $ htpasswd -c . htpasswd имя-пользователя

    Новый пароль:

    Повторно введите новый пароль:

    Добавление пароля для имени пользователя-пользователя

    [wjdjmhbxbxbx]

    С этого момента вам нужно будет предоставить пользователя и пароль, которые вы установили выше, для доступа к вашему сайту.Отмените изменения, чтобы снова открыть доступ.

    2) Блокировать доступ к определенным IP-адресам

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

    <Ограничить GET POST> заказ разрешить, запретить отклонить от 46.228.47.114 отклонить от 46.225.88.5 разрешить от всех

    заказ разрешить, отклонить

    отклонить от 46.228.47.114

    запретить от 46.225. 88.5

    разрешить со всех

    3) Заблокировать все IP-адреса за некоторыми исключениями

    Вы можете сделать это снова во время разработки. Опять же, замените IP на желаемый:

    <Ограничить GET POST> заказ отклонить, разрешить отрицать от всех # Разрешить только один IP позволяют с 84.89.61.164

    order deny, разрешить

    deny со всех

    # Just Allow a Single IP

    allow from 84.89.61.164

    .

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

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