Htaccess комментарии: fkn+antitotal | студентам & программистам

Файл .htaccess для SEO — Иван Соколов на vc.ru

Всем привет! На связи руководитель студии СЕО Бутик Иван Соколов. В этой статье расскажу, как правильно настраивать файл htaccess для СЕО и для чего это нужно.

494 просмотров

На что влияет

Файл .htaccess – конфигурационный файл (сокращение от «hypertext access») веб-сервера Apache. В нем указаны команды, которые должны выполняться каждый раз, когда на сайт заходит пользователь.

Основные возможности файла для оптимизации сайта:

  • Обеспечение безопасности ресурса и его разделов.
  • Настройка редиректов для СЕО.
  • Настройка корректного отображения ресурса.
  • Оптимизация скорости загрузки сайта.

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

Где находится .htaccess

Находится файл обычно в корневой папке сайта. Для основного домена эта папка называется public_html, а для дополнительно – так же, как и домен.

Попасть в корневую папку на хостинге cPanel можно так:

  • Перейти в корневую папку. Справа появится .htaccess

Файла в корневой папке может и не быть или он скрыт. Чтобы это проверить в верхней правой части cPanel нужно нажать меню «Настройки» и проверить стоит ли галочка в строке «Показать скрытые файлы». Если галочки нет, то файл скрыт, нужно активировать строку, чтобы появился .htaccess.

Если после проделанных операций файл все равно отсутствует, то надо создать его вручную.

Как создать .htaccess

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

  1. В текстовом редакторе создать новый файл и сохранить его, как .htaccess. Убедитесь, что при сохранении нет .txt или другого расширения.
  2. Добавить код в пустой файл. Он выглядит так:

Изменения сохраняем и загружаем в корневую папку WordPress. Используем файловый менеджер или FTP. В первом случае заходим в учетную запись хостинга и находим файловый менеджер. В верхней строке нажимаем на меню «Загрузки».

В открывшееся окно перетаскиваем созданный файл из локальной системы.

СЕО настройки в .htaccess

С помощью .htaccess настраивают редиректы для SEO. Но перед тем, как настраивать переадресацию, необходимо убедиться, что это требуется. На некоторых страницах со слешем редирект настроен по умолчанию.

301 и 302 Редирект

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

Когда требуется постраничная настройка:

  • У сайта изменился уровень вложенности.
  • Страница удалена, но нужно сохранить поступающий с нее трафик. Например, если на сайте интернет магазина исчезла позиция, то делают переадресацию на товарную категорию.
  • Вместо одной страницы сделали другую.
  • Купили более «красивый» домен и нужно перенести на него сайт.
  • Нужно убрать дубликаты – страницы с разным URL, но одинаковым содержимым. Это плохо для SEO, поскольку размывается уникальность контента, и из-за этого падают позиции в поисковой выдаче.

Простое удаление страницы – не лучший вариант. Робот будет показывать ошибку 404. Для СЕО лучше перенаправить посетителей на страницу или категорию с аналогичным предложением. Тогда сайт не потеряет целевой трафик, и, соответственно, позиции в поисковой выдаче.

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

302 редирект, нужен когда:

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

Настройка 302 редиректа осуществляется посредством плагина Yoast SEO WordPress. Код непосредственно в плагине.

Примените элементарный метод в две строчки:

Блокировка доступа к сайту

Существует 2 способа блокировки доступа к сайту:

  1. Сделать так, чтобы для доступа к ресурсу или определенной его странице нужно было ввести пароль.
  2. Заблокировать доступ по IP-адресу или юзер-агенту. Таким способом можно защитить сайт от нежелательных ботов или вирусных атак. Zeus [NC]

    <limit get=”” post=”” head=””>

    Order Allow,Deny

    Allow from all

    Deny from env=bad_bot

    </limit>

    Список юзер агентов можно сократить или дополнить своим. А еще можно создавать запрет для поисковых роботов.

    Директива для определенных IP-адресов:

    allow from all

    deny from IP1

    deny from IP2 и т. д.

    Создание кастомных страницы

    С помощью .htaccess создать свое отображение страниц для самых популярных ошибок:

    ErrorDocument 401 /error/401.php

    ErrorDocument 403 /error/403.php

    ErrorDocument 404 /error/404.php

    ErrorDocument 500 /error/500.php

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

    Пример ошибки 404

    Пример кастомной страницы:

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

    Откройте конфигурационный файл .htaccess в корневой папке вашего сайта и добавьте в него строку:

    ErrorDocument 404 https://site.ru/404.html

    Где вместо site.ru — домен вашего сайта

    Теперь вместо стандартного отображения начнет отображаться ваша!

    Однако, такой способ создания кастомной страницы не подойдет, если у вас сайт на WordPress. Нужно не загружать страницу на хостинг, а изменить файл с названием 404. php в панели управления.

    Пошаговая инструкция, как это сделать:

    • Открыть админку сайта на WordPress.
    • Перейти в раздел «Плагины» и нажать «Добавить новый».
    • В строке поиска прописать название 404 page.
    • Нажать Установить/Активировать.
    • Перейти в раздел «Внешний вид»- 404 Error Page.
    • Вберить в списке «Sample Page», чтобы сменить стандартную страницу ошибки, и нажмите «Edit Page».

    В открывшемся визуальном редакторе создать свою страницу и нажать «Обновить».

    Запрет на использование картинок

    Некоторые сайты берут ваши статьи и картинки без спроса. Это не только нарушает авторские права, но и создает ненужную дополнительную нагрузку на ваш сервер.

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

    Наказать воришек поможет этот код:

    Options +FollowSymlinks

    RewriteEngine On

    RewriteCond %{HTTP_REFERER} !^$

    RewriteCond %{HTTP_REFERER} !^https://(www. )?mysite.com/ [nc]

    RewriteRule .*.(gif|jpg|png)$ https://mysite.com/img/goaway.gif[nc]

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

    Оптимизация работы сайта

    Скорость загрузки – один из самых важных факторов ранжирования. Увеличить ее можно с помощью сжатия файлов в .htaccess. Для этого используем 2 модуля — mod_zip и mod_deflate. Они практически идентичны по качеству сжатия. Но первый модуль более гибкий и умеет работать с масками.

    Еще можно усилить кеширование – ускорить загрузку сайта для пользователей, которые уже посещали ресурс. Один из вариантов кода:

    FileETag MTime Size

    <ifmodule mod_expires.c>

    <filesmatch “.(jpg|gif|png|css|js)$”>

    ExpiresActive on

    ExpiresDefault “access plus 1 week”

    </filesmatch>

    </ifmodule>

    Можно выбрать срок кеша на 1 неделю (как в примере), месяц или год.

    Итоги

    Я рассказал про основные крутые настройки .htaccess для SEO продвижения. Но есть и другие. Про них вы можете узнать на нашем сайте СЕО Бутик. Совершенствуйте свой сайт с помощью .htaccess и узнавайте о «крутых» возможностях оптимизации.

    .htaccess правила для предотвращения исполнения вредоносных PHP-скриптов · GitHub

    # Блокировка XSS
    RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
    # Блокируем выставление переменной PHP GLOBALS через URL
    RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
    # Блокируем возможность изменять переменную _REQUEST через URL
    RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
    # Блокировка MySQL инъекций, RFI, base64, и др.
    RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=http:// [OR]
    RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=(\.\.//?)+ [OR]
    RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=/([a-z0-9_.]//?)+ [NC,OR]
    RewriteCond %{QUERY_STRING} \=PHP[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12} [NC,OR]
    RewriteCond %{QUERY_STRING} (\.\./|\.\.) [OR]
    RewriteCond %{QUERY_STRING} ftp\: [NC,OR]
    RewriteCond %{QUERY_STRING} http\: [NC,OR]
    RewriteCond %{QUERY_STRING} https\: [NC,OR]
    RewriteCond %{QUERY_STRING} \=\|w\| [NC,OR]
    RewriteCond %{QUERY_STRING} ^(. s]*s)+elect [NC,OR]
    RewriteCond %{QUERY_STRING} (;|<|>|’|»|\)|%0A|%0D|%22|%27|%3C|%3E|%00).*(/\*|union|select|insert|drop|delete|update|cast|create|char|convert|alter|declare|order|script|set|md5|benchmark|encode) [NC,OR]
    RewriteCond %{QUERY_STRING} (\\|\.\.\.|\.\./|~|`|<|>|\|) [NC,OR]
    RewriteCond %{QUERY_STRING} (boot\.ini|etc/passwd|self/environ) [NC,OR]
    RewriteCond %{QUERY_STRING} (thumbs?(_editor|open)?|tim(thumb)?)\.php [NC,OR]
    RewriteCond %{QUERY_STRING} (sp_executesql) [NC]
    RewriteCond %{QUERY_STRING} (eval\() [NC,OR]
    RewriteCond %{QUERY_STRING} (127\. (TRACE|TRACK)
    RewriteRule .* — [F]
    # Фильтрация URL на служебные символы
    RewriteCond %{QUERY_STRING} (<|>|’|\+|%2B|%0A|%0D|%27|%3C|%3E|%00) [NC,OR]
    # Блокировка известных Shell
    RewriteEngine on
    RewriteCond %{REQUEST_URI} .*((php|my)?shell|remview.*|phpremoteview.*|sshphp.*|pcom|nstview.*|c99|r57|webadmin.*|phpget.*|phpwriter.*|fileditor.*|locus7.*|storm7.*).(p?s?x?htm?l?|txt|aspx?|cfml?|cgi|pl|php[3-9]{0,1}|jsp?|sql|xml) [NC,OR]
    RewriteCond %{REQUEST_METHOD} (GET|POST) [NC]
    RewriteCond %{QUERY_STRING} ^(. (GET|HEAD|POST|PROPFIND|OPTIONS|PUT)$ [NC]
    RewriteRule .* — [F,NS,L]
    # Блокировка от LFi-атак (экспериментальное, см. комментарии)
    RewriteCond %{REQUEST_METHOD} GET
    RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=http:// [OR]
    RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=http%3A%2F%2F [OR]
    RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=(..//?)+ [OR]
    RewriteCond %{QUERY_STRING} [a-zA-Z0-9_]=/([a-z0-9_.]//?)+ [NC]
    RewriteRule .* — [F]

    Комментирование вашего кода .

    htaccess | .htaccess легко

    Категория: Блог • Автор: Джефф Старр • Обновлено:

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

    Знак фунта

    Каждая строка комментариев должна начинаться со знака фунта, или хэш-тега, или как вы хотите это назвать, # . Добавление знака решетки перед вашими комментариями указывает Apache игнорировать строку. Например:

     # это комментарий 

    Добавление перед строкой директив .htaccess знака решетки — это быстрый способ отключить всю строку, что очень полезно при устранении неполадок и настройке кода.

    Вся строка

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

    Так, например, любой из этих комментариев является законным:

     # это комментарий
         ## это другой комментарий
                      ### несколько знаков фунта допустимы 

    Но эти примеры недействительны и вызовут ошибку:

     ExpiresActive on # это вызовет ошибку
    RedirectMatch 403 /spamhole/ # это вызовет ошибку
    # это будет
               вызвать ошибку 

    Таким образом, если вы хотите включить комментарий, лучше всего поставить знак решетки в начале строки, чтобы Apache знал, что его нужно игнорировать.

    Та же строка

    Насколько я помню, в более ранних/старых версиях Apache можно было включать комментарий в конце строки (заключенный в двойные кавычки), например:

     
    Заказать Разрешить, Запретить
    Разрешить от всех
    Запретить с 111.222.333 "# улица Сезам"
    Запретить от 444.555. 666 "# мистер Роджерс"
    Отклонить от 777.888.999 "# могучих рейнджеров"
     

    Эта техника была чрезвычайно полезной и замечательной, но, к сожалению, она больше не разрешена в новых версиях Apache. Так что, насколько это может помочь организовать ваш код, не делай этого . Храните свои комментарии каждый в отдельной строке, как обсуждалось ранее. Я упоминаю об этом здесь, потому что на Interwebz все еще есть примеры, использующие такой синтаксис.

    В любом месте файла

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

    Следите за чистотой

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

    Не сходи с ума

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

    Если вы дочитали до этого места, поздравляем! Вы молодец . htaccess 🙂

    Синтаксис

    — добавить комментарий к .htpasswd

    Задай вопрос

    спросил

    Изменено 5 лет, 2 месяца назад

    Просмотрено 8к раз

    Мне интересно, можно ли написать комментарий к файлу .htpasswd .

    Почему? Потому что иногда нам приходится «отключать» некоторых пользователей всего на пару дней. Я проверил StackOverflow и другие веб-сайты, и это кажется довольно запутанным:

    • Невозможно
    • Возможно с ::
    • Возможно с # (как .htaccess)

    ::bar:$apr1$G3iw8iqc$IGNoXDw7e7HolcSgE/V0a0

    #foo:$apr1$3dJLDmbn$/zODUbSXmqDfeeCmMFKO8/

    NB: я не хочу отключать пользователей, например, добавляя фальшивый символ в начале строки. Мне нужен чистый способ, если это возможно 😉

    После тестирования оба, похоже, работают, но мне нужны некоторые мнения экспертов (и, кстати, VIm не выделяет синтаксис ни :: , ни # )

    • синтаксис
    • .htpasswd

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

    Строки, начинающиеся с символа решетки «#», считаются комментариями и игнорируются. Комментарии не могут быть включены в строку после директивы конфигурации. — Официальное руководство Apache 2.4

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

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

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