Инструкции файла .htaccess

Защищаем сайт

Данный код позволяет защитить сайт от scripts enjection и нежелательных модификаций _REQUEST и/или GLOBALS

#Включаем отслеживание сим-ссылок
Options +FollowSymLinks
#Запускаем url_rewriting
RewriteEngine On
#Блокируем все ссылки, содержащие <script>
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) 
#Блокируем все скрипты, которые пытаются изменить переменные PHP Globals:
RewriteCond %{QUERY_STRING} GLOBALS(=|\{0,2}) 
#Блокируем все скрипты, которые пытаются изменить переменную _REQUEST:
RewriteCond %{QUERY_STRING} _REQUEST(=|\{0,2})
#Перенаправляем все подобные на страницу с ошибкой 403 - запрещено
RewriteRule ^(.*)$ index.php 

Настройка редиректов в htaccess

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

Самый простой редирект можно выполнить без mod_rewrite, с помощью такой строки:

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

Значение R=301 означает код редиректа, который будет возвращен клиенту, можно использовать 301, 302 и т д. Редирект htaccess с домена www на домен без префикса будет выглядеть так:

Таким же образом можно сделать переадресацию:

Редирект с http версии на https:

Перенаправление страниц в .htaccess

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

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

Существуют различные способы автоматического перенаправления страниц — одним из них является мета-тег http-equiv=»refresh», уже обсуждавшийся в статье HTML head:

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

301 — это код HTTP сообщения Moved permanently (страница на новом адресе). Старый адрес относится к основному каталогу сайта, а новый адрес является абсолютным — он включает в себя имя самого сайта. Это также позволяет перенаправлять страницы на совершенно другой сайт.

Один конкретный пример:

Страница rose.html, расположенная в корневом каталоге сайта, теперь находится по новому адресу — в подкаталоге flowers по адресу www.example.com с новым именем red_rose.html.

Таким же образом, содержимое всего каталога можно перенаправить:

или даже весь сайт:

Как автоматически добавить www к URL-адресу страницы (http://example.com/index.html, чтобы стать http://www.example.com/index.html) или наоборот — освободить URL-адреса страниц от www (http : //www.example.com/index.html, чтобы стать http://example.com/index.html), описывается далее.

НАСТРОЙКА ДОСТУПА HTACCESS

Довольно часто htaccess используется для управления доступом к папке. Для управления доступом используются три команды:

  • order — порядок;
  • deny — запретить;
  • allow — разрешить.

Сначала, с помощью опции order, нужно указать в каком порядке будут выполняться директивы, значение имеет только эта команда, и неважно в какой последовательности они расположены в файле. Затем с помощью директивы allow или deny мы разрешаем или запрещаем доступ к папке с определенных адресов

Например, чтобы запретить все необходимо добавить в htaccess:

Затем с помощью директивы allow или deny мы разрешаем или запрещаем доступ к папке с определенных адресов. Например, чтобы запретить все необходимо добавить в htaccess:

Но мы также можем разрешить доступ только с нужной подсети или IP адреса:

Для блокировок IP адресов вы можете использовать возможности cPanel

Если указано deny,allow, то проверка будет выполняться в таком порядке. Сначала все директивы deny, затем все директивы allow, и если ни одно из условий не подошло, то запрос пропускается.При allow,deny такой запрос будет по умолчанию отклонен. Например, предыдущий пример можно написать так:

Все о htaccess – основные возможности

Правильная настройка файла htaccess позволяет вносить некоторые изменения в работу веб-сервера без получения административных прав. Управлять директивами основного конфигурационного файла (httpd.conf) могут только администраторы.

В процессе обработки запросов веб-сервер может генерировать коды различных ошибок. Например, если введенный URL ссылается на несуществующую страницу, Apache отправит код, который может быть непонятен рядовому пользователю. При разработке веб-приложений создают отдельные страницы с пояснениями ошибок (например, «Ошибка 404 – страницы не существует»). Чтобы организовать процесс автоматического перенаправления на данную страницу, используют следующую директиву в файле htaccess:

ErrorDocument 404 https://website.net/error/404.html

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

Чтобы задать в htaccess перенаправление на файл страницы сайта, используют директиву 301. Данная директива имеет следующий синтаксис:

Redirect 301 /some_page.html https://website.net/some_another_page.html

Если требуется выполнить перенаправление на новый домен (актуально например, если сайт был перенесен, а часть посетителей привыкли использовать старое доменное имя), вводят следующую директиву:

Redirect 301 / https://www.new_website_domain.net/

Что касается редиректа, некоторые разработчики выполняют htaccess 404 редирект, то есть перенаправление, например, на главную страницу веб-ресурса в случае получения запроса на несуществующую страницу. С точки зрения SEO данный подход считается некорректным.

Как создать файл .htaccess

Как уже говорилось, конфигурационные файлы имеют текстовый формат, и создать .htaccess также можно с помощью текстового редактора (например, Блокнота или NotePad++ в Windows).

Имя файла — .htaccess (с точкой в начале);

тип — «Все файлы»;

формат переноса по словам;

режим ASCII (при загрузке .htaccess на хостинг по FTP-протоколу).

Apache — регистрозависимый веб-сервер, поэтому важно написать название маленькими буквами: .HTaccess и .htaccess — это разные файлы. В Mac ОS файлы, начинающиеся с точки, невидимы

Поэтому вы можете назвать его иначе и после, переместив по FTP на хостинг, переименовать. Обычно размещают файл в корневой директории веб-сервера (/public_html) либо в корневой директории сайта (/public_html/site.com/)

В Mac ОS файлы, начинающиеся с точки, невидимы. Поэтому вы можете назвать его иначе и после, переместив по FTP на хостинг, переименовать. Обычно размещают файл в корневой директории веб-сервера (/public_html) либо в корневой директории сайта (/public_html/site.com/).

Что такое .htaccess и для чего он нужен

Файл (или файлы) .htaccess будет задавать правила работы веб-сервера только в каталоге, где он размещен, и его дочерних каталогах, без глобальных изменений работы всего сервера. Возможность использовать .htaccess прописывается директивой (т.е. командой) AllowOverride в главном конфигурационном файле httpd.conf, название которой прямо говорит о том, что настройки внутри .htaccess приоритетны перед настройками в httpd.conf (если иное не ограничено все той же директивой AllowOverride). С помощью этой директивы можно позволить все, а можно — только некоторые действия. Детальную инструкцию по его применению можно найти на сайте Apache.

С ней, при каждом обращении к веб-серверу, Apache будет просматривать все каталоги на наличие .htaccess. Изменения в файле действительны сразу после сохранения — перезагрузка всего веб-сервера не нужна (в отличие от изменений в httpd.conf).

Имя файла .htaccess — общепринятое, но вовсе не обязательное. В httpd.conf можно задать другое имя с помощью директивы AccessFileName, например, так:

Оптимизируем работу сайта

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

14. Сжимаем компоненты сайта при помощи mod_gzip или mod_deflate

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

Синтаксис модуля Gzip более гибкий и он умеет работать с масками:

В mod_deflate вы перечисляете типы файлов, которые нужно сжать:

15. Усиливаем кэширование

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

В примере срок жизни кэша ограничен одной неделей («1 week»), вы можете указать свой срок в месяцах (month), годах (year), часах (hours) и т.д.

Другой вариант кода:

Для кэширования доступны следующие типы файлов:

  • image/x-icon;
  • image/jpeg;
  • image/png;
  • image/gif;
  • application/x-shockwave-flash;
  • text/css;
  • text/javascript;
  • application/javascript;
  • application/x-javascript;
  • text/html;
  • application/xhtml+xml.

Что собой представляет файл htaccess и для чего используется

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

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

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

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

Некоторые особенности использования htaccess:

1. В нем можно переопределить большое количество директив, прописанных в главном файле httpd.confg

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

3. Разместить htaccess-файл можно в любой каталог, а его директивы будут применены ко всем подкаталогам

4. Htaccess не доступен пользователю для просмотра из браузера, так как относится к категории «системные».

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

  • Директивы простого перенаправления (редирект);
  • Директивы сложного перенаправления (mod_rewrite);
  • Индексные страницы;
  • Обработка ошибок;
  • Определение кодировки;
  • Управление доступом к директориям и файлам;
  • Паролирование директорий;
  • Опции PHP.

Блокировка пользователей с помощью .htaccess

Эта опция используется редко, но иногда есть причины забанить пользователя. Конкретным примером является робот, который часто загружает большое количество информации, или пользователь, который регулярно рассылает спам. Будьте осторожны, чтобы не отключить действующего робота, такого как Googlebot — вред от этого перевесит любые потенциальные преимущества!

Ниже приведен конкретный пример отказа в доступе к сайту пользователя с IP-адресом 234.56.7.8, а также с любыми IP-адресами, начинающимися с 123.45.6. (123.45.6.1, 123.45.6.2 и т. д.):

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

Имя робота можно использовать в бане. В следующем примере проверяется имя робота, запрашивающего страницу (User-Agent), и если оно оказывается именем робота, которому мы хотим запретить доступ (bad_ robot), тогда переменная marsh_navyn получает значение 1 и вызывает запрет на доступ:

Обратите внимание, что значение User-Agent может быть легко изменено пользователем, поэтому бан на основе имени User-Agent не очень безопасен

Пример .htaccess rewrite

В переводе, rewrite означает – переписать. Мы можем переписывать текущий URL страниц
для более простого восприятия, или как говорят в народе: «для создания ЧПУ» (человекопонятных
УРЛ). Что сейчас очень распространено. Пример простого использования htaccess rewrite можете
посмотреть ниже:

RewriteEngine on
RewriteRule ^old.html $ new.html

В этом примере, мы применяем простой редирект из одного
файла, на другой, который будет реализован невидимым образом, без изменений в
адресной строке. Первое указание, RewriteEngine on, просто удостоверяется, что
движок rewrite доступен для использования.

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

RewriteRule ^old.html$  http://hostname/new.html 

Модификатор r, способствует внешней
переадресации, которая возвращает новую страницу. Таким образом, мы можем
определить код статута (HTTP ответ). Этот пример кода обновляет информацию в адресной
строке браузера.

Еще одно полезное применение для htaccess rewrite, которое упоминалось
ранее, это создание ЧПУ. Давайте посмотрим на примере:

RewriteRule ^products/(+)/(+)/(+) product.php?cat=$1&brand=$2&prod=$3

Это правило позволит пользователям увидеть URL подобным
образом: products/turntables/technics/sl1210, а перенаправить на product.php?cat=turntables&brand=technics&prod=sl1210,
без изменения данных в адресной строке. Это очень удобно как для SEO, так и для пользователей.
Текст между слешами, это регулярные выражения, которые позволяют отобразить
только значения $1,$2,$3, между которыми слеши. Выражение + означает, что может встречаться любой из символов 1 или
больше раз, за исключением слеша (/).

На практике, url rewrite используют более сложным образом. Этой теме посвящено
множество статей и уроков, мы не будем на этом останавливаться.

Что теперь должен делать index.php

Вот как может выглядеть вышеупомянутый скрипт index.php:

<?php/*
Здесь и должен формироваться код для всех возможных URL (т.е. для всех страниц).
Если раньше всё это было рассредоточено по разным файлам, то теперь всё — здесь.
По непосредственно рабочему коду отличия минимальные: как формировали HTML специфические
предназначенные для этого функции, так и будут формировать.
Главное — не забыть, что одинаковые части страницы
типа шапки формируются один раз, и не наделать повторяющегося кода.
Следует отметить, что несмотря на манипуляции с адресом запроса,
cодержимое переменной $_SERVER останется прежним,
и можно будет работать с тем адресом запроса, который был в самом начале.
*/$url = parse_url($_SERVER’REQUEST_URI’, PHP_URL_PATH); // GET-запрос пока уберём// разберем различные случаи вида url.if ($url == ‘/’) {
    // здесь выводим HTML для главной страницы; её адрес — /
    // хотя более удобным было бы для всякой страницы HTML-код
    // всё же формировать динамически}elseif (preg_match(‘/^\/news\/(\d+)\.html$/’, $url, $matches) {
    // обрабатываем страницы вида /news/123.html
    $newsid = $matches1;
    // далее получаем текст новости по id, внедряем текст в код страницы и т.п.}elseif (preg_match(‘/^\/articles\/(.+)\.html$/’, $url, $matches))
    // обрабатываем страницы вида /articles/some_article.html
    $article_name = $matches1;
    // получаем данные статьи по её имени}else {
    /*
    Если ничего из вышеперечисленного не сработало, значит, запрошенный адрес
    не относится ни к статье, ни к новости, а относится к чему-либо еще
    (например, к одной из уникальных страниц, вид которых
    строится индивидуально для каждой из них).
    Возможно, страницы с запрашиваемым адресом на сайте не существует,
    тогда клиенту нужно вернуть HTTP-код ошибки — 404 — и информацию о том,
    что страница не найдена.
    */}
   
    /*
    Теперь можно каким-либо способом (например, при помощи какого-нибудь шаблонизатора)
    построить однотипные для всех страниц сайта фрагменты HTML-кода
    (например, объявление DOCTYPE, заголовок и шапку страницы),
    после чего вывести полученный код в окно браузера.
   
    Разумеется, всё это может принимать сколь угодно разнообразные формы.
    */
    ?>

Как создать htaccess и сделать это правильно

Нужно открыть любой текстовый редактор, например, Notepad ++ (можно скачать в свободном доступе).

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

В разделе «Правка» – «Формат конца строки» изменить формат, как показано на скриншоте

Сохранить через пункт меню «Сохранить» как или ctrl+S. В появившемся окне выбрать директиву для сохранения «All types» (все типы),


Имя файла вписать .htaccess. Сохранить.

Как убедиться, что создали правильный документ? Загружаете файл на сервер в корневую папку и смотрите, не упал ли он. Если нет ошибки 500, все хорошо и можно заполнять дальше.

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

Впоследствии можно использовать любой текстовый редактор, если вы пользуетесь Total Commander, выберите файл и нажмите F4.

Оптимизация работы сайта через .htaccess

Ускорение работы сайта через Gzip

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

или

или

Как улучшить кэширование сайта на сервере?

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

или

В выражении «access plus …» установите срок хранения файлов на компьютере пользователя. По истечении этого срока при запросе к сайту файлы будут единоразово загружены с сервера. Оптимальным будет от 7 дней до месяца, хотя иногда устанавливается и год.

Изменение главной (индексной) страницы сайта

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

Сжимаем компоненты сайта путем включения Gzip

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

#Сжимаем компоненты сайта путем включения Gzip
AddOutputFilterByType DEFLATE texthtml textplain ..
.. textxml applicationxml applicationxhtml+xml .. 
.. textjavascript textcss applicationx-javascript
BrowserMatch ^Mozilla4 gzip-only-texthtml
BrowserMatch ^Mozilla4678 no-gzip
BrowserMatch bMSIE !no-gzip !gzip-only-texthtml

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

нужно убрать).

Ошибка загрузки SWF файлов.Ошибки при обращении к страницам, содержащим ключевые слова,типа $_REQUEST

Такое может происходить из-за установленного модуля <mod_security> в Apache. По умолчанию он блокирует в запросах строки с SQL аргументами и другими потенциально опасными командами.

Возможные сообщения об ошибке:

Forbidden

You don’t have permission to access /adm/index.php on this server. Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
Запрос небезопасен и был отвергнут.
«POST /wp-admin/async-upload.php HTTP/1.1» 406 354 «-» «Shockwave Flash»

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

Общие правила работы с .htaccess

  • Всегда делайте резервную копию файла перед внесением изменений, чтобы оперативно «откатить» их.
  • Вносите изменения пошагово, добавляйте по одному правилу и оценивайте, как оно сработало.
  • Если размещаете несколько файлов .htaccess в разных каталогах, прописывайте в дочерних только новые директивы, которые актуальны для конкретного каталога, остальные унаследуются от родительского каталога или файла в корневой папке.
  • Очищайте кэш браузера: Ctrl + F5, в Safari: Ctrl + R, в Mac OS: Cmd + R.
  • Если возникает ошибка 500, проверьте синтаксис правила (нет ли опечатки). Можно воспользоваться сервисами проверки файла .htaccess онлайн, например таким. Если ошибок не найдено, значит в главном конфигурационном файле такой тип директивы запрещен, придется обратиться за консультацией к программисту и хостинг-провайдеру.
  • В директивах .htaccess кириллические символы не допускаются. Если необходимо указать адрес кириллического домена (мойсайт.рф), воспользуйтесь любым whois-сервисом, чтобы узнать его написание по методу punycode. Например, адрес «сайт.рф» будет выглядеть как «xn--80aswg.xn--p1ai/$1».
  • Слишком большое количество директив в .htaccess может снизить работоспособность сайта. Старайтесь использовать файл только в том случае, если другим путем задачу решить нельзя.
  • Если нет времени подробно изучать особенности директив, воспользуйтесь генератором .htaccess.

Настройки веб-серверов в Панели управления

В настройках базового веб-сервера вы можете изменять все директивы PHP, значение графы Changeable для которых соответствует PHP_INI_PERDIR или PHP_INI_ALL. Эти настройки будут иметь силу на всех сайтах, которые работают на этом веб-сервере.

Управлять абсолютно всеми параметрами PHP вы можете на расширенном веб-сервере, редактируя php.ini через его настройки.

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

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

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

Директория в пути расположения файла должна существовать, а если ее нет — обязательно создайте папку вручную. Файл журнала будет создан при появлении первой ошибки.

Для изменения ограничения на оперативную память для выполнения процесса используйте следующую директиву в .htaccess:

Вместо 512M укажите желаемый размер ограничения

Обратите внимание, что символ «M» (латинская M) указывается слитно со значением. Уточнить максимальное значение оперативной памяти, доступное по тарифу, можно в

Чтобы увеличить время выполнения скриптов (в секундах), добавьте следующую директиву в .htaccess:

Вместо 300 укажите желаемый размер ограничения

Обратите внимание, что выполнение скрипта более чем в 10 минут (600 секунд) завершится ошибкой с кодом 504

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

Вместо 200M укажите желаемый размер ограничения

Обратите внимание, что символ «M» (заглавная латинская M) указывается слитно со значением

Максимальный размер передаваемых переменных определяется с помощью следующей директивы:

Вместо 15000 укажите необходимый размер ограничения, который требует CMS сайта.

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

Вместо «windows-1251» подставьте подходящую кодировку, например, UTF-8. Проверить, в какой именно кодировке написан сайт, можно через инструменты используемого браузера. Если сайт не обрел корректный вид, обратитесь за помощью в службу технической поддержки.

Чтобы заставить интерпретатор PHP обрабатывать файлы с произвольным расширением, (например, .phtml), добавьте в файл .htaccess следующую строку:

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

По умолчанию время хранения сессий — 1440 секунд (24 минуты). Для изменения этого значения добавьте в .htaccess следующие директивы:

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

Альтернативные механизмы хранения и очистки сессий:

  1. Указывать вложенность директорий хранения сессий с помощью аргумента N в session.save_path и очищать старые сессии собственными скриптами ( в документации PHP).
  2. Реализовать собственный механизм хранения сессий (например, в MySQL) и установить его с помощью функции session_set_save_handler.

Правильный 301 редирект через файл .htaccess

Важно! Если вы хотите, чтобы ваш редирект работал, нужно перед строками, которые рекомендуются ниже по тексту, обязательно прописать

301 Редирект с www-сайта на сайт без www

Например перенаправление с http://www.site.com на http://site.com. Это очень полезная вещь, часто используется в SЕО

Как добавить .html в конце URL?

Чтобы при вводе site.com/page или site.com/page/ происходило перенаправление на site.com/page.html пишем в .htaccess следующее:

301 Редирект с одного раздела на другой

Перенаправление всех страниц одного раздела site.com/razdel-1/razdel-2/page на на страницы другого раздела site.com/razdel-1/page

301 Редирект при переезде со старого домена на новый

Следующее правило корректно перенаправит посетителей с каждой конкретной страницы старого сайта на такую же страницу на новом сайте. Например со страницы oldsite.com/page на newsite.com/page

Что такое htaccess

Определение что такое htaccess:

.htaccess (/’eɪtʃtiːæk.sɛs/ от англ. hypertext access) — файл дополнительной конфигурации веб-сервера Apache, а также подобных ему серверов.

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

На вашем сайте(сервере) есть главный файл конфигурации, все, что так или иначе выполняется на вашем сайте зависит от этого файла, а вот файл htaccess — это — можно сравнить с дополнительными настройками системы…

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

В этом случае — можно его изменить, только обратившись в техническую поддержку!

Перенаправления и изменение URL

Популярное использование файла — задание перенаправлений или изменений URL. Данный метод помогает в целях SEO изменять имя домена, или перестраивать файловую структуру проекта, или делать длинные трудно запоминаемые адреса URL простыми и понятными.

Перенаправления

Перенаправления могут быть очень простыми, например:

Redirect 301 ^old\.html$ http://localhost/new.html

В данном случае используется код статуса HTTP 301 (перемещено постоянно) и все запросы к перенаправляются на . Здесь используется регулярное выражение для определения соответствия URL правилу, что добавляет сложности в построение правила, но придает уверенности в правильности URL. Требуется указывать полный адрес URL ресурса, на который происходит перенаправление.

Изменения

Правило изменения также может быть очень простым:

RewriteEngine on
RewriteRule ^old\.html$ new.html

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

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

RewriteRule ^old\.html$ http://hostname/new.html 

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

Одно возможное использование перенаправлений — изменение адресов URL к более простой форме для посетителей и поисковых роботов. Рассмотрим пример:

RewriteRule ^products/(+)/(+)/(+) product.php?cat=$1&brand=$2&prod=$3

Данное правило позволяет использовать посетителю адрес URL наподобие products/turntables/technics/sl1210, который будет трансформироваться в product.php?cat=turntables&<WBR>brand=technics&prod=sl1210. Круглые скобки между слешами в регулярном выражении примера выполняют объединение в группы – мы можем использовать каждую из них как  , и соответственно. Комбинация в скобках соответствует любому символу, кроме слеша, в любых количествах.

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

Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
Люкс-хост
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: