Главная » HTML5 » Разная информация » Трюки в .htaccess
176 0  

Трюки в .htaccess

Что и как можно настроить в .htaccess am Работает только на: ОС - Linux, сервер - Apache, включен модуль - Mod-Rewrite.

Задаем кодировку

AddDefaultCharset UTF-8

bully Как коментировать в .htaccess?
Просто ставим решетку, пример:

#тут ваш комментарий
RewriteRule (.+)/$ $1 

можно так

RewriteRule (.+)/$ $1 #тут ваш комментарий

Самые необходиме редиректы:

#301 редирект с www на без www
RewriteCond %{HTTP_HOST} ^www\.(.*)$
RewriteRule ^(.*)$ https://%1/$1 [L,R=301]

#301 редирект с index.html на главную страницу
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.html\ HTTP/
RewriteRule ^index\.html$ https://ardilla-cms.top/ [R=301,L]

#Редирект 301 с страницы с .html на страницу без .html
RewriteCond %{THE_REQUEST} /([^.]+)\.html [NC]
RewriteRule ^ /%1 [NC,L,R]
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^ %{REQUEST_URI}.html [NC,L]

Старый способ разрешить и запретить просмотр:

Order Deny,Allow
Deny from all

* Еще есть поддержка по состоянию на 2022 год


love lol НОВЫЙ способ запрета и разрешений создается с помощью нового модуля Апаче и дерективы Require - mod_authz_core

Также по использованию Require - хорошая статья

  #Пример РАЗРЕШЕНИЯ доступа всем без ограничений, что аналогично устаревшей Allow from all
Require all granted


  #Пример ЗАПРЕЩЕНИЯ доступа всем, что аналогично устаревшей Deny from all
Require all denied


  # Доступа на основе ЛОГИЧЕСКОГО выражения. Здесь, доступ разрешается для всех клиентов, у которых значение USER_AGENT не содержит фразу 'BadBot':
Require expr %{HTTP_USER_AGENT} != 'BadBot'


  # Синтаксис примера <RequireAll> директивы-тега. Эта групповая директива требует, что бы все, заключенные внутри нее, директивы Require были исполнены, и только в этом случае   <RequireAll> исполниться, и доступ будет предоставлен. В приведенном примере клиентам, приходящим с IP 192.168.48.185 или с домена host.example.com, доступ будет запрещен, а всем остальным доступ будет разрешен.
<RequireAll>
    Require all granted
    Require not ip 192.168.48.185
    Require not host host.example.com
</RequireAll>


  # Синтаксис примера <RequireAny> директивы-тега. Эта групповая директива требует, что бы хотя бы одна из заключенных внутри нее директив Require была исполнена, только в этом случае <RequireAny> исполниться и доступ будет предоставлен. Поэтому внутри <RequireAny>, все последующие директивы Require, следующие после первой исполненной, уже игнорируются. В данном примере доступ будет предоставлен только клиентам, выполнившим запрос методом GET или POST, или только клиентам, прошедшим авторизацию по пользователю и паролю методом заданным директивой AuthType.
<RequireAny>
     Require method GET POST
     Require valid-user
</RequireAny>

Значение символов в .htaccess?

. — точка означает любой символ;
[abc] — перечень символов, совпадающих с буквами a, b, или с;
[^abc] — перечень символов, что не входят в диапазон. Условию соответствует любой символ, кроме a, b, с;
* — предыдущий символ может повторяться 0 и более раз;
[abc]* — найти символы из заданного набора, идущие подряд;
[^abc]* — обратная операция;
.* — замена любого набора символов;
 ".*" — найти все подстроки между кавычками;
^ — обозначает начало строки (при использовании в начале выражения);
$ — конец строки;
\w — буква, цифра или подчёркивание _;
\d — любая цифра;
\D — любой символ, кроме цифр;
[0-9] — указание на любую цифру;
[a-z] — указание на любую букву от a до z с нижним регистром;
[A-Z] — указание на любую букву от A до Z с верхним регистром;
[a-zA-Z] — любая буква от a до Z, регистр не важен;
[a-Z] — то же самое, только короче.
Флаги для доп. опций
NC — NoCase отключает проверку регистра символов при срабатывании правила.
R — Redirect останавливает изменение URL-адреса и возвращает результат. 
L — Last останавливает создание URL-адреса, и строка считается окончательной.

Спецсимволы:

    ^ - ограничение слева (начало строки);
    $ - ограничение справа (конец строки);
    . - Точка это любой символ;
    () - переменная (группировка);
    \ - экранирование (символ после \ считается обычным, а не спецсимволом);
    [] - диапазон значений;
    [abc] — перечень символов, совпадающих с буквами a, b, или с.
    [^abc] — перечень символов, не входящих в диапазон. Условию соответствует любой символ, кроме a, b, с.
    * — предыдущий символ может повторяться 0 и более раз.
    [abc]* — найти символы из заданного набора идущие подряд.
    [^abc]* — обратная операция.
    \w — буква, цифра или подчёркивание _.
    \d — любая цифра.
    \D — любой символ, кроме цифр.
    [0-9] — указание на любую цифру.
    [a-z] — указание на любую букву от a до z с нижним регистром.
    [A-Z] — указание на любую букву от A до Z с верхним регистром.
    [a-zA-Z] — любая буква от a до Z, регистр не важен.
    [a-Z] — тоже самое, только короче.
    ! - специальный символ отрицания;

Модификаторы:

    ? - символ повторяется 0 или 1 раз;
    + - 1 и более символов (до 65536);
    * - предыдущий символ может повторяться 0 и более символов (до 65536);

Флаги для дополнительных опций в правиле

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

NC — NoCase отключает проверку регистра символов при срабатывании правила.
R — Redirect останавливает изменение URL-адреса и возвращает результат. Самое популярное значение R=301, однако встречаются и другие для временных редиректов (302, MOVED TEMPORARY).
L — Last останавливает создание URL-адреса и строка считается окончательной.

Оставить свой комментарий:

Опыт в веб разработке:

2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
1979
2021