BloGGood.ru

Блог Костаневича Степана

До Нового Года осталось:

Блог на разные темы, seo-оптимизация, раскрутка сайта, создание сайта, вкусные эффекты для сайта и многое другое…

Главная » Wordpress » htaccess для WordPress

htaccess для WordPress

2013-03-13 / Вр:23:06 / просмотров: 40014

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

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

Настройки файла htaccess для WordPress.

Стандартный htaccess для Wordpress.

Вот так выглядит стандартный код htacces для wordpress.

# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^robots.txt$ - [L]
RewriteRule ^sitemap.xml$ - [L]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress

Но я вам рекомендую его расширить. Смотрите предлагаемое.

htaccess для WordPress

Безопасность  WordPress и защита.

Закрыть доступ к просмотру всех файлов.

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

deny from all

Блокировка по IP.

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

<Limit GET POST>
order allow,deny
deny from xx.xxx.xxx.xxx
deny from x2.xx2.xx2.xx2
allow from all
</Limit>

Защита изображения на сайте.

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

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^https://(www\.)?ваш-сайт.com/.*$ [NC]
RewriteRule\.(png|gif|jpg|jpeg)$ https://www.ваш-сайт.com/stopimg.gif [R,L]

Если кто-то решит установить картинку, хранящуюся у вас на сайте, то увидит вместо ожидаемого результата картинку с предупреждением  stopimg.gif

Защита от Спама.

Зачастую многие спам-боты обращаются напрямую к файлу, который обрабатывает комментарии пришедшие с сайта, этот файл называется wp-comments-post.php. Можно выловить спам-бота от живого пользователя через обращение к файлу wp-comments-post.php на наличие REFERER. При добавлении комментариев, у пользователя он есть, а вот у спам-бота его нет. Но этот метод не является 100% защитой от Спама,  воспользуйтесь дополнительно плагином.
Не забудьте поменять "ваш домен.ru" на ваш (5-тая строка ).

# защита комментария от Спам-бота
RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} .wp-comments-post\.php*
RewriteCond %{HTTP_REFERER} !.*ваш домен.ru.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule (.*) ^https://%{REMOTE_ADDR}/$ [R=301,L]

Запретить доступ к папке wp-content и wp-includes.

Все пользователи  WordPress знают, что в папке "wp-content" хранятся все плагины и темы, картинки и многое др. Рекомендую защитить папку "wp-content" от нехороших людей (редисок).

Создать новый файл htaccess в папке "wp-content" на хостинге с таким кодом (эти же действия сделайте для папки "wp-includes"):

Order deny,allow
Deny from all
<Files ~ ".(xml|css|jpe?g|png|gif|js)$">
Allow from all
</Files>

Запрет доступа к файлу wp-config.php

В WordPress файл "wp-config.php"  содержит всю важную информацию, например, название и пароль к базе данных. Запретим доступ через файл htaccess.

# защита wp-config.php
<files wp-config.php>
order allow,deny
deny from all
</files>

Запрещаем доступ к определенному файлу.

Вы можете защитить файлы плагина css и js.

<Files ~ "\.(js|css)$">
order allow,deny
allow from all
</Files>

○ Запрещаем просмотр нежелательным User-Agent.

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

SetEnvIfNoCase user-Agent ^FrontPage [NC,OR]
SetEnvIfNoCase user-Agent ^Java.* [NC,OR]
SetEnvIfNoCase user-Agent ^Microsoft.URL [NC,OR]
SetEnvIfNoCase user-Agent ^MSFrontPage [NC,OR]
Order Allow,Deny
Allow from all
Deny from env=bad_bot

○ Ограничение доступа к админ-панеле WordPress.

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

AuthUserFile /dev/null
AuthGroupFile /dev/null
AuthName "Example Access Control"
AuthType Basic
<LIMIT GET>
order allow, deny
deny from all
allow from xx.xxx.xxx.xxx
</LIMIT>

○ Защита htaccess.

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

<Files ~ "^.*\.([Hh][Tt][Aa])">
order allow,deny
deny from all
satisfy all
</Files>

Редиректы (перенаправления).

Самый простой редирект на новый сайт и страницу.

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

перенаправление на страницу сайта.

Redirect 301 / https://ваш сайт.ru/страница.htm

перенаправление на новый адрес сайта.

Redirect 301 / https://ваш сайт.ru/

Внимание: "/" - слеш в конце обязательно.
Пример неправильной записи:
https://ваш сайт.ru
Пример правильной записи:
https://ваш сайт.ru/страница.htm
https://ваш сайт.ru/

Также можно перенаправить со страницы на страницу, при этом сохранит PR старой страницы.

Redirect 301 /путь/старая-страница.htm https://ваш сайт.ru/новая-страница.htm

○ 301 редирект для слияния страниц с www и без (склеить домен).

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

главным доменом будет с www

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^ваш-домен\.ru$ [NC]
RewriteRule ^(.*)$ https://www.ваш-домен.ru/$1 [R=301,L]

главным доменом будет без www

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.ваш-домен\.ru$ [NC]
RewriteRule ^(.*)$ https://ваш-домен.ru/$1 [R=301,L]

Изменяем страницы ошибок.

Рекомендую сделать личные страницы ошибок, где будет краткое разъяснение причины ошибки. В таком случае вы не потеряете клиентов при возникновении ошибки, так как пользователь будет перенаправлен на специальную подготовленую страницу.

ErrorDocument 401 /401.html
ErrorDocument 403 /403.html
ErrorDocument 404 /404.html
ErrorDocument 500 /500.html

401.html, 403.html, 404.html, 500.html - это подготовленые страницы ошибок.

Ускорение сайта через файл htaccess для WordPress.

Включаем кэширование браузера клиента.

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

Header append Cache-Control "public"
FileETag MTime Size
ExpiresActive On
ExpiresDefault "access plus 0 minutes"
ExpiresByType image/ico "access plus 1 years"
ExpiresByType text/css "access plus 1 years"
ExpiresByType text/javascript "access plus 1 years"
ExpiresByType image/gif "access plus 1 years"
ExpiresByType image/jpg "access plus 1 years"
ExpiresByType image/jpeg "access plus 1 years"
ExpiresByType image/bmp "access plus 1 years"
ExpiresByType image/png "access plus 1 years"

Важно: обратите внимание на image/, возможно в вашем случае папку с картинками нужно поменять.

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

○ Кодировка по умолчанию.

Чтобы избежать проблемы с кодировкой, можно указать принудительную кодировку - UTF8

AddDefaultCharset UTF-8

Вот и все!!! Не игнорируйте темой "htaccess для WordPress", так как htaccess важен для защиты блога.

С Уважением Webmasterok2009

Понравился пост? Помоги другим узнать об этой статье, кликни на кнопку социальных сетей ↓↓↓

Получай обновления блога!!! Подпишись:

Популярные статьи:

180 Ответов на комментарий - htaccess для WordPress

  1. Мария

    Здравствуйте! Помогите мне. Я меняла этот файл. На каком то этапе вылезла ошибка 500. Перезалила. Теперь как только вставляю хоть что то, хоть какой то запрет помимо стандартного вылетает ошибка 403 о запрете к файлам вп админ. Я в отчаянии. Гугл не помог. Что мне делать. У вас самая лучшая статья о данном файле так понятно все но почему не получается?

  2. Степан => автор блога Степан => автор блога

    Здравствуйте, Мария. Постараюсь Вам помочь. Вы брали все примеры htaccess с моего блога?

  3. Мария

    Да. Огромное спасибо за оперативность. Я еще покопалась и нашла ошибку. Оказывается нужно было строчку deny from all в начале не ставить. Она видимо запрещала мне дальнейшие махинации. Я убрала ее и дальше все поставила по вашим советам и все получилось ошибки больше не было. Еще раз спасибо за мегаполезную статью!

  4. Степан => автор блога Степан => автор блога

    Пожалуйста, Мария. Я рад что у Вас, все получилось. Если будут вопросы, обращайтесь. Удачи Вам.

  5. Татьяна

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

  6. Степан => автор блога Степан => автор блога

    Здравствуйте, Татьяна! Возможно, нужно поменять права доступа файла htaccess. Но я рекомендую обратиться вначале с этим вопросом к Вашему хостинг-провайдеру. Объясните им, что файл не закачивается на сервер. Они Вам скажут, что делать и какие права доступа нужно указать для файла. Пожалуйста, отпишете, когда проблема будет решена.

  7. Татьяна

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

  8. Степан => автор блога Степан => автор блога

    Татьяна, я рад, что проблема с файлом htaccess у Вас решилась! Спасибо огромное за комментарий. Удачи вам! Кстати, смотрел Ваш сайт и мне он очень понравился!

  9. Татьяна

    Спасибо большое, за оценку. Тут у меня еще вопросик по поводу htaccess назрел. Ограничение доступа к админ-панели WordPress по IP можно прописать для двух постоянных адресов, или в обязательном порядке,только для одного?
    Если,можно, то как будет выглядеть?

  10. Степан => автор блога Степан => автор блога

    в каталоге админки создайте файл .htaccess с таким кодом:

    # Защита по IP
    
    <Files "admin.php">
    Order deny,allow
    Deny from all
    Allow from Ваш IP адрес
    Allow from другой IP адрес
    Allow form еще один IP адрес
    </Files>
    
  11. Татьяна

    Спасибочки,огромное :smile:

  12. Степан => автор блога Степан => автор блога

    Пожалуйста! Мне было приятно Вам помочь. Если что, обращайтесь, с радостью помогу, если смогу! :smile:

  13. Ксения

    Добрый день! У меня такой вопрос, а как закрыть категорию с названием темы? Вот к примеру, если такой адрес ввести, то выскакивает ошибка: bloggood.ru/wp-content/themes/bloggood/

  14. Степан => автор блога Степан => автор блога

    Здравствуйте, Ксения! Запретите доступ к папке wp-content. В папке “wp-content” хранятся все фалы плагинов, вашей темы и т. д. Запретим доступ любопытным лицам. Создайте в папке “wp-content” файл htaccess и установите такой код:

     
    Order deny,allow
    Deny from all
    <Files ~ ".(xml|css|jpe?g|png|gif|js)$">
    Allow from all
    </Files> 
    
  15. Vlad

    Здравствуйте!

    А не могли бы вы проверить мой htaccess?

    Что-то я в нем сомневаюсь немного + хотел поставить 301 редирект для replytocom:

    RewriteCond %{QUERY_STRING} ^replytocom= [NC]
    RewriteRule (.*) $1? [R=301,L]

    P.S. Если что файл потом скину вам на почту…

  16. Степан => автор блога Степан => автор блога

    Здравствуйте! Все правильно!
    Только не ставьте код внизу файла, иначе редирект для replytocom работать не будет.

  17. Vlad

    “Все правильно” – это вы о htaccess, или о 301 редиректе?

    Просто когда я смотрел htaccess, обнаружил там слишком много кода…

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

  18. Степан => автор блога Степан => автор блога

    Влад, я не видел вашего htaccess. По поводу 301 редиректа, код правильный.
    Код htaccess самостоятельно добавляться не может, либо вы самостоятельно добавили, либо кто-то, либо вредоносный скрипт!

  19. Vlad

    Насчет 301 и так было понятно!! :smile:

    Давайте я скину вам свой htaccess на почту?

    А вы посмотрите и что-то посоветуете… Возможно его вообще нужно заменить на новый… :|

    Хотел посмотреть у вас адрес в контактах, но увы “Почта: даю при необходимости”… :|

  20. Степан => автор блога Степан => автор блога

    Влад, скопируйте Ваш код htaccess и вставьте в комментарий. Постараюсь Вам чем-то помочь!

  21. Vlad

    Вот мой htaccess:

    # BEGIN WPSuperCache
    
    RewriteEngine On
    RewriteBase /
    #If you serve pages from behind a proxy you may want to change 'RewriteCond %{HTTPS} on' to something more sensible
    AddDefaultCharset UTF-8
    RewriteCond %{REQUEST_METHOD} !POST
    RewriteCond %{QUERY_STRING} !.*=.*
    RewriteCond %{HTTP:Cookie} !^.*(comment_author_|wordpress_logged_in|wp-postpass_).*$
    RewriteCond %{HTTP:X-Wap-Profile} !^[a-z0-9\"]+ [NC]
    RewriteCond %{HTTP:Profile} !^[a-z0-9\"]+ [NC]
    RewriteCond %{HTTP_USER_AGENT} !^.*(2.0\ MMP|240x320|400X240|AvantGo|BlackBerry|Blazer|Cellphone|Danger|DoCoMo|Elaine/3.0|EudoraWeb|Googlebot-Mobile|hiptop|IEMobile|KYOCERA/WX310K|LG/U990|MIDP-2.|MMEF20|MOT-V|NetFront|Newt|Nintendo\ Wii|Nitro|Nokia|Opera\ Mini|Palm|PlayStation\ Portable|portalmmm|Proxinet|ProxiNet|SHARP-TQ-GX10|SHG-i900|Small|SonyEricsson|Symbian\ OS|SymbianOS|TS21i-10|UP.Browser|UP.Link|webOS|Windows\ CE|WinWAP|YahooSeeker/M1A1-R2D2|iPhone|iPod|Android|BlackBerry9530|LG-TU915\ Obigo|LGE\ VX|webOS|Nokia5800).* [NC]
    RewriteCond %{HTTP_user_agent} !^(w3c\ |w3c-|acs-|alav|alca|amoi|audi|avan|benq|bird|blac|blaz|brew|cell|cldc|cmd-|dang|doco|eric|hipt|htc_|inno|ipaq|ipod|jigs|kddi|keji|leno|lg-c|lg-d|lg-g|lge-|lg/u|maui|maxo|midp|mits|mmef|mobi|mot-|moto|mwbp|nec-|newt|noki|palm|pana|pant|phil|play|port|prox|qwap|sage|sams|sany|sch-|sec-|send|seri|sgh-|shar|sie-|siem|smal|smar|sony|sph-|symb|t-mo|teli|tim-|tosh|tsm-|upg1|upsi|vk-v|voda|wap-|wapa|wapi|wapp|wapr|webc|winw|winw|xda\ |xda-).* [NC]
    RewriteCond %{HTTP:Accept-Encoding} gzip
    RewriteCond %{HTTPS} on
    RewriteCond %{DOCUMENT_ROOT}/wp-content/cache/supercache/%{SERVER_NAME}/$1/index-https.html.gz -f
    RewriteRule ^(.*) "/wp-content/cache/supercache/%{SERVER_NAME}/$1/index-https.html.gz" [L]
    
    RewriteCond %{REQUEST_METHOD} !POST
    RewriteCond %{QUERY_STRING} !.*=.*
    RewriteCond %{HTTP:Cookie} !^.*(comment_author_|wordpress_logged_in|wp-postpass_).*$
    RewriteCond %{HTTP:X-Wap-Profile} !^[a-z0-9\"]+ [NC]
    RewriteCond %{HTTP:Profile} !^[a-z0-9\"]+ [NC]
    RewriteCond %{HTTP_USER_AGENT} !^.*(2.0\ MMP|240x320|400X240|AvantGo|BlackBerry|Blazer|Cellphone|Danger|DoCoMo|Elaine/3.0|EudoraWeb|Googlebot-Mobile|hiptop|IEMobile|KYOCERA/WX310K|LG/U990|MIDP-2.|MMEF20|MOT-V|NetFront|Newt|Nintendo\ Wii|Nitro|Nokia|Opera\ Mini|Palm|PlayStation\ Portable|portalmmm|Proxinet|ProxiNet|SHARP-TQ-GX10|SHG-i900|Small|SonyEricsson|Symbian\ OS|SymbianOS|TS21i-10|UP.Browser|UP.Link|webOS|Windows\ CE|WinWAP|YahooSeeker/M1A1-R2D2|iPhone|iPod|Android|BlackBerry9530|LG-TU915\ Obigo|LGE\ VX|webOS|Nokia5800).* [NC]
    RewriteCond %{HTTP_user_agent} !^(w3c\ |w3c-|acs-|alav|alca|amoi|audi|avan|benq|bird|blac|blaz|brew|cell|cldc|cmd-|dang|doco|eric|hipt|htc_|inno|ipaq|ipod|jigs|kddi|keji|leno|lg-c|lg-d|lg-g|lge-|lg/u|maui|maxo|midp|mits|mmef|mobi|mot-|moto|mwbp|nec-|newt|noki|palm|pana|pant|phil|play|port|prox|qwap|sage|sams|sany|sch-|sec-|send|seri|sgh-|shar|sie-|siem|smal|smar|sony|sph-|symb|t-mo|teli|tim-|tosh|tsm-|upg1|upsi|vk-v|voda|wap-|wapa|wapi|wapp|wapr|webc|winw|winw|xda\ |xda-).* [NC]
    RewriteCond %{HTTP:Accept-Encoding} gzip
    RewriteCond %{HTTPS} !on
    RewriteCond %{DOCUMENT_ROOT}/wp-content/cache/supercache/%{SERVER_NAME}/$1/index.html.gz -f
    RewriteRule ^(.*) "/wp-content/cache/supercache/%{SERVER_NAME}/$1/index.html.gz" [L]
    
    RewriteCond %{REQUEST_METHOD} !POST
    RewriteCond %{QUERY_STRING} !.*=.*
    RewriteCond %{HTTP:Cookie} !^.*(comment_author_|wordpress_logged_in|wp-postpass_).*$
    RewriteCond %{HTTP:X-Wap-Profile} !^[a-z0-9\"]+ [NC]
    RewriteCond %{HTTP:Profile} !^[a-z0-9\"]+ [NC]
    RewriteCond %{HTTP_USER_AGENT} !^.*(2.0\ MMP|240x320|400X240|AvantGo|BlackBerry|Blazer|Cellphone|Danger|DoCoMo|Elaine/3.0|EudoraWeb|Googlebot-Mobile|hiptop|IEMobile|KYOCERA/WX310K|LG/U990|MIDP-2.|MMEF20|MOT-V|NetFront|Newt|Nintendo\ Wii|Nitro|Nokia|Opera\ Mini|Palm|PlayStation\ Portable|portalmmm|Proxinet|ProxiNet|SHARP-TQ-GX10|SHG-i900|Small|SonyEricsson|Symbian\ OS|SymbianOS|TS21i-10|UP.Browser|UP.Link|webOS|Windows\ CE|WinWAP|YahooSeeker/M1A1-R2D2|iPhone|iPod|Android|BlackBerry9530|LG-TU915\ Obigo|LGE\ VX|webOS|Nokia5800).* [NC]
    RewriteCond %{HTTP_user_agent} !^(w3c\ |w3c-|acs-|alav|alca|amoi|audi|avan|benq|bird|blac|blaz|brew|cell|cldc|cmd-|dang|doco|eric|hipt|htc_|inno|ipaq|ipod|jigs|kddi|keji|leno|lg-c|lg-d|lg-g|lge-|lg/u|maui|maxo|midp|mits|mmef|mobi|mot-|moto|mwbp|nec-|newt|noki|palm|pana|pant|phil|play|port|prox|qwap|sage|sams|sany|sch-|sec-|send|seri|sgh-|shar|sie-|siem|smal|smar|sony|sph-|symb|t-mo|teli|tim-|tosh|tsm-|upg1|upsi|vk-v|voda|wap-|wapa|wapi|wapp|wapr|webc|winw|winw|xda\ |xda-).* [NC]
    RewriteCond %{HTTPS} on
    RewriteCond %{DOCUMENT_ROOT}/wp-content/cache/supercache/%{SERVER_NAME}/$1/index-https.html -f
    RewriteRule ^(.*) "/wp-content/cache/supercache/%{SERVER_NAME}/$1/index-https.html" [L]
    
    RewriteCond %{REQUEST_METHOD} !POST
    RewriteCond %{QUERY_STRING} !.*=.*
    RewriteCond %{HTTP:Cookie} !^.*(comment_author_|wordpress_logged_in|wp-postpass_).*$
    RewriteCond %{HTTP:X-Wap-Profile} !^[a-z0-9\"]+ [NC]
    RewriteCond %{HTTP:Profile} !^[a-z0-9\"]+ [NC]
    RewriteCond %{HTTP_USER_AGENT} !^.*(2.0\ MMP|240x320|400X240|AvantGo|BlackBerry|Blazer|Cellphone|Danger|DoCoMo|Elaine/3.0|EudoraWeb|Googlebot-Mobile|hiptop|IEMobile|KYOCERA/WX310K|LG/U990|MIDP-2.|MMEF20|MOT-V|NetFront|Newt|Nintendo\ Wii|Nitro|Nokia|Opera\ Mini|Palm|PlayStation\ Portable|portalmmm|Proxinet|ProxiNet|SHARP-TQ-GX10|SHG-i900|Small|SonyEricsson|Symbian\ OS|SymbianOS|TS21i-10|UP.Browser|UP.Link|webOS|Windows\ CE|WinWAP|YahooSeeker/M1A1-R2D2|iPhone|iPod|Android|BlackBerry9530|LG-TU915\ Obigo|LGE\ VX|webOS|Nokia5800).* [NC]
    RewriteCond %{HTTP_user_agent} !^(w3c\ |w3c-|acs-|alav|alca|amoi|audi|avan|benq|bird|blac|blaz|brew|cell|cldc|cmd-|dang|doco|eric|hipt|htc_|inno|ipaq|ipod|jigs|kddi|keji|leno|lg-c|lg-d|lg-g|lge-|lg/u|maui|maxo|midp|mits|mmef|mobi|mot-|moto|mwbp|nec-|newt|noki|palm|pana|pant|phil|play|port|prox|qwap|sage|sams|sany|sch-|sec-|send|seri|sgh-|shar|sie-|siem|smal|smar|sony|sph-|symb|t-mo|teli|tim-|tosh|tsm-|upg1|upsi|vk-v|voda|wap-|wapa|wapi|wapp|wapr|webc|winw|winw|xda\ |xda-).* [NC]
    RewriteCond %{HTTPS} !on
    RewriteCond %{DOCUMENT_ROOT}/wp-content/cache/supercache/%{SERVER_NAME}/$1/index.html -f
    RewriteRule ^(.*) "/wp-content/cache/supercache/%{SERVER_NAME}/$1/index.html" [L]
    
    
    # END WPSuperCache
    
    # BEGIN WordPress
    
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    
    
    # END WordPress
    
  22. Ольга

    Здравствуйте! У меня стандартный htaccess, я хочу дополнить и прописать код для 301 редиректа для слияния страниц без www. Куда нужно вставить код в начало или в конец? Или можно в любое место дописать 3 строчки

    Options +FollowSymLinks
    RewriteCond %{HTTP_HOST} ^ваш-домен\.ru$ [NC]
    RewriteRule ^(.*)$ https://www.ваш-домен.ru/$1 [R=301,L]
    
  23. Vlad

    Вообщем сейчас я все те каракули заменил на вот такой:

    # BEGIN WordPress

    RewriteEngine On
    RewriteBase /
    RewriteCond %{QUERY_STRING} ^replytocom= [NC]
    RewriteRule (.*) $1? [R=301,L]
    RewriteRule (.+)/feed /$1 [R=301,L]
    RewriteRule (.+)/comment-page /$1 [R=301,L]
    RewriteRule (.+)/trackback /$1 [R=301,L]
    RewriteRule (.+)/comments /$1 [R=301,L]
    RewriteRule (.+)/attachment /$1 [R=301,L]
    RewriteCond %{QUERY_STRING} ^attachment_id= [NC]
    RewriteRule (.*) $1? [R=301,L]
    RewriteRule ^index\.php$ – [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]

    # END WordPress

    Потом может из вашей статьи еще что-то добавлю… :smile:

  24. Степан => автор блога Степан => автор блога

    Вы устанавливали плагин WP Super Cache?
    Потому, что эти новые правила отвечающие за кэширование браузера и правильную отдачу страниц записал плагин WP Super Cache.

  25. Степан => автор блога Степан => автор блога

    Здравствуйте, Ольга! Если Вы хотите прописать код для 301 редиректа для слияния страниц без www, тогда Вам нужен вот этот код:

    Options +FollowSymLinks
    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^www.ваш-домен\.ru$ [NC]
    RewriteRule ^(.*)$ https://ваш-домен.ru/$1 [R=301,L]
    

    Я всегда вставляю код редерикта самый вверх кода .htaccess!

  26. Vlad

    Да, плагин стоит!

    А если я htaccess поставил тот что предоставил ниже, с нуля так сказать…

    Плагин запишет сам все обратно?

  27. Степан => автор блога Степан => автор блога

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

  28. Vlad

    А то что он записал – это необходимо для его нормальной работы и все потом нужно восстановить?

  29. Степан => автор блога Степан => автор блога

    Влад, вы знаете для чего установили плагин WP Super Cache? Проверьте сайт, если функция плагина WP Super Cache работает правильно, значит все гуд!

  30. Vlad

    Да, знаю!

    Вообщем в плагине выбивало: “Необходимые для работы плагина права были изменены или отсуствуют. Прокрутите страницу вниз и нажмите кнопку Обновить правила Mod_Rewrite.

    Пришлось обновить…

    Обновил и все снова стало на свои места!

    В принципе я видел метки плагина, просто не думал, что весь код идет от него…

    Спасибо за уделенное время!
    :smile:

  31. Светлана

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

  32. Степан => автор блога Степан => автор блога

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

  33. Светлана

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

  34. Светлана

    Оказалось, что этот файл заблокирован плагином. Сейчас вставила код, не знаю, насколько туда или нет. Изменения произошли, но.. было ?replytocom=922#respond, стало #respond. Это считается перенаправлением или проблема не решена?

  35. Степан => автор блога Степан => автор блога

    Светлана, отправьте код htaccess через форму “Контакты”.

  36. Степан => автор блога Степан => автор блога

    Светлана, я так думаю, что #respond – это ссылка якорь. Проблема решена!
    Я так понимаю, Вы, Светлана, избавляетесь от дублей страниц?

  37. Степан => автор блога Степан => автор блога

    Я Вас понял! Для вывода древовидное комментария я установил плагин WordPress Thread Comment. Таким способом я избегаю от создания дублированных страниц.

  38. Светлана

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

  39. Степан => автор блога Степан => автор блога

    Светлана, может Вам помочь? :smile:

  40. Светлана

    Спасибо, Степан. Я для начала хочу попробовать сделать такую форму без плагина – видела на некоторых сайтах (хотя может и ошибаюсь).
    Но у меня вопрос по поводу дублей к Вам. Разве с #respond или #comment не образуются дубли страниц, ведь это тоже получается другой адрес. Подобные адреса открываются и с тегом Далее и с кнопками соц.сетей… Получается борьбы через одни только комментарии с данным вопрососм не достаточно…

  41. Степан => автор блога Степан => автор блога

    Светлана, я думаю, что #respond или #comment не образуют дубли страниц, так как этот ссылка якорь. Но это мое личное мнение, потому могу и ошибаться.

  42. Сергей

    разместил ваши коды в своем .htaccess и сайт умер :sad:
    ошибка 500.

  43. Степан => автор блога Степан => автор блога

    какой именно код, он здесь не один?

  44. Галина

    Степан, очень рада, что наткнулась в многочисленных поисках на вашу статью – по сравнению с другими, очень внятно и доступно. Но поскольку с темой htaccess столкнулась вообще впервые, трудности с пониманием все равно возникли. Заглянула – он у меня есть, но там какая-то абракадабра написана, нужно, видимо, срочно создавать. Вопрос первый: имеющущийся файл в корне сайта убить и загрузить заново или можно просто стереть “абракадабру” и скопировать все коды, когда я их составлю?
    Вопрос 2. Самый для меня сейчас больной – как правильно перекрыть кислород sputnikBot – очень он меня достал. Почему и вышла на тему htaccess. Известен его заголовок User-Agent – Mozilla/5.0 (compatible; SputnikBot/2.3). В общем, пишу сейчас и вздыхаю: вдруг поможете разобраться? :cry:

  45. Степан => автор блога Степан => автор блога

    Здравствуйте, Галина!
    Ответ на вопрос №1 – можете удалить старый htaccess с абракадаброй и залить новый. Можно стереть абракадабру и скопировать все коды которые Вы составите. Здесь разницы нет.
    Вопрос №2 –
    Чтобы защититься от sputnikBot, нужно прописать:

    RewriteEngine on
    RewriteBase /
    RewriteCond %{HTTP_USER_AGENT} ^sputnikBot
    RewriteRule ^.*$ - [F]
    

    Для запрета нескольким ботам, нужно добавить еще строку:

    RewriteEngine on
    RewriteBase /
    RewriteCond %{HTTP_USER_AGENT} ^sputnikBot [OR]
    RewriteCond %{HTTP_USER_AGENT} ^имя бота [OR]
    RewriteCond %{HTTP_USER_AGENT} ^имя бота
    RewriteRule ^.*$ - [F]
    

    Галина, напишите результат.

  46. Галина

    ОК, спасибо огромное, Степан! Я за это дело засяду во второй половине недели – сейчас цейтнот жуткий навалился. И непременно напишу, что у меня из этого получится! :smile:

  47. Галина

    В общем, отчитываюсь: весь лист htaccess еще не составила, но этого бота первым делом засунула под запрет – вроде бы, все, как вы велели. Первые дни была красота, а потом опять нет-нет, да и случается “перегруз”. Уже не так почти непрерывно, как было, но все же происходит. Или он все же как-то прорывается ко мне, или кто-то еще у меня бродит и грузит – пока не поняла, как это самостоятельно проверить.
    Но у меня еще к вам вопрос – стыдно, что задаю его, но уж лучше покраснею немного. Тот файл htaccess, что уже был в корневой папке – пока не решилась его удалить без консультации. В общем, “наш”, т.е. составленный с вашей помощью, htaccess.txt, а тот просто htaccess. И написано в нем примерно следующее: “# BEGIN WPSuperCache RewriteEngine On RewriteBase / #If you serve pages from behind a proxy you may want to change ‘RewriteCond %{HTTPS}…” – это начало, а вообще такого добра там на всю страницу.
    В общем, убивать этот файл? А то как наубиваю все без разбора… :cry:
    И еще раз спасибо вам огромное, Степан!

  48. Степан => автор блога Степан => автор блога

    Галина, возьмите и скопируйте эти два файла “.htaccess” и “htaccess.txt” на компьютер, в случай если что-то не получиться, можно будет восстановить. Теперь, удалите эти два файла и создайте один новый “.htaccess” без расширения “txt”. Как создать файл “.htaccess” смотрите здесь.
    Вставляете вот этот стандартный код для WordPress:

    # BEGIN WordPress
    RewriteEngine On
    RewriteBase /
    RewriteRule ^robots.txt$ - [L]
    RewriteRule ^sitemap.xml$ - [L]
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    # END WordPress
    

    после этого добавляете остальной нужный код, например для страницы ошибки 404, кодировка сайта и т.д.
    Заливаете этот файл в корень сайта.

    Еще, хотел спросить, как вы видите, что ваш сайт перегружен? Он становиться не доступен в сети или пишется номер ошибки? Или приходит на почту от хостера уведомление?

  49. Галина

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

  50. Степан => автор блога Степан => автор блога

    Галина, мой совет, напишите хостеру про эту проблему, пусть объяснят причину появления этой страницы!
    Да, этого бота пропишите в новый файл “.htaccess”.

  51. Vlad

    Добрый день!
    Прошу помочь с проблемкой.
    В корне стоит сайт с wordpress, в одной из вложенных папок есть самостоятельный скрипт.
    Доступ к вложенной папке с этим скриптом нужно запаролить.
    Через панель управления на эту папку создаю пароль.
    При обращении к папке выдается 404 ошибка с основного сайта.
    Убираю .htaccess из корня сайта (wordpress) и пароль на папке запрашивается нормально. (т.е. парольная защита работает)
    В корневом .htaccess стандартные настройки WordPress
    Пожалуйста подскажите, как поправить правила mod_rewrite, что-бы нормально работал пароль на вложенную папку?

  52. Степан => автор блога Степан => автор блога

    Здравствуйте! Вставьте в комментарий Ваш код файла “.htaccess”, хочу глянуть на сколько он стандартный! За одно посмотрю, что не так!

  53. Vlad
     
    AddDefaultCharset UTF-8
    Options -Indexes
    
    # BEGIN WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </IfModule>
    # END WordPress
    
  54. Степан => автор блога Степан => автор блога

    Влад, попробуйте удалить 1 и 2 строку:

    AddDefaultCharset UTF-8
    Options -Indexes
    
  55. Vlad

    Удалил.
    Изменений нет.

  56. Игорь

    Здравствуйте :smile: я по поводу: Запретить доступ к папке wp-content и wp-includes.
    Можно просто в .htaccess прописать Options -Indexes, тем самым мы скроем папки и файлы от посторонних глаз, а если через браузер обратится к любому файлу, папке, то получим ошибку 403. У меня данный .htaccess лежит в папке wp-includes, а в wp-content .htaccess с параметром deny from all

  57. Михаил

    Здравствуйте! Там где мы запрещаем доступ к папке wp-content и wp-includes у Вас в 3-й строчке написано так
    Вопрос: между jpe и g должен стоять вопрос или это опечатка???
    Если должен стоять, то зачем? Спасибо если ответите!

  58. Степан => автор блога Степан => автор блога

    Здравствуйте!
    Тут jpe?g часть регулярного выражения “.(xml|css|jpe?g|png|gif|js)$” Вопросительный знак указывает на то, что буква “е” может, как содержаться в записи, так и отсутствовать. Фактически, часть jpe?g ищет файлы с расширением и jpg, и jpeg.
    А все регулярное выражение какие-то другие из того же списка: xml, css, png, jpg, jpeg gif, js

  59. Михаил

    Спасибо, Степан, за оперативный и подробный ответ!

  60. Степан => автор блога Степан => автор блога

    И Вам, Михаил, спасибо за комментарий!

  61. Юрий

    При добавлении кода о запрете картинок получается 500 ошибка

     RewriteEngine on
    RewriteCond %{HTTP_REFERER} !^$
    RewriteCond %{HTTP_REFERER} !^https://(www\.)?ваш-сайт.com/.*$ [NC]
    RewriteRule\.(png|gif|jpg|jpeg)$ https://www.ваш-сайт.com/stopimg.gif [R,L]
  62. Степан => автор блога Степан => автор блога

    Попробуйте вот так:

    Options +FollowSymlinks
    RewriteEngine On
    RewriteCond %{HTTP_REFERER} !^$
    RewriteCond %{HTTP_REFERER} !^https://(www.)?ваш-сайт.com/ [nc]
    RewriteRule .*.(png|gif|jpg|jpeg)$ https://ваш-сайт.com/stopimg.gif[nc]
    
  63. Олеся

    я может быть задам совсем глупый вопрос, но в какое конкретно место стандартного файла .htacces нужно добавлять эти все строки?
    После перед # END WordPress? или после # END WordPress? или куда?

  64. Степан => автор блога Степан => автор блога

    Добавляете в файл .htaccess после #END WordPress.

  65. Олеся

    спасибо! :smile:

  66. Степан => автор блога Степан => автор блога

    Пожалуйста! :smile:

  67. Елена

    Здравтвуйте, Степан. Разместила коды в своем .htaccess и не могу попасть на свой сайт, не пускает сервер. Ошибка 403, связанная с сервером. Я переименовала файл .htaccess, в .htaccess.old, обновила страницу и зашла в панель управления. Сохранила изменения и все настройки остались изначальными.
    Что я сделала не так?
    Вот, что у меня было:

    # BEGIN WordPress
    
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    
    
    # END WordPress
    
    Options +FollowSymLinks
    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^www.helenga\.ru$ [NC]
    RewriteRule ^(.*)$ https://helenga.ru/$1 [R=301,L]
    
    # защита комментария от Спам-бота
    RewriteEngine On
    RewriteCond %{REQUEST_METHOD} POST
    RewriteCond %{REQUEST_URI} .wp-comments-post\.php*
    RewriteCond %{HTTP_REFERER} !.*helenga.ru.* [OR]
    RewriteCond %{HTTP_USER_AGENT} ^$
    RewriteRule (.*) ^https://%{REMOTE_ADDR}/$ [R=301,L]
    
    
    order allow,deny
    deny from 2.92.20.244
    deny from 66.249.81.197
    deny from 77.37.134.37
    deny from 46.242.29.164
    deny from 82.48.44.125
    deny from 83.246.160.90
    deny from 90.154.92.29
    deny from 95.167.189.87
    deny from 91.201.244.60
    deny from 93.179.68.98
    deny from 94.228.200.21
    deny from 91.212.124.136
    deny from 128.75.10.131
    deny from 157.55.39.79
    deny from 157.55.39.238
    deny from 158.255.161.75
    deny from 207.46.13.144
    deny from 188.244.36.209
    deny from 217.10.47.109 
    allow from all
    
  68. Степан => автор блога Степан => автор блога

    Здравствуйте, Елена!
    Среди этих IP, нет вашего?

    deny from 2.92.20.244
    deny from 66.249.81.197
    deny from 77.37.134.37
    deny from 46.242.29.164
    deny from 82.48.44.125
    deny from 83.246.160.90
    deny from 90.154.92.29
    deny from 95.167.189.87
    deny from 91.201.244.60
    deny from 93.179.68.98
    deny from 94.228.200.21
    deny from 91.212.124.136
    deny from 128.75.10.131
    deny from 157.55.39.79
    deny from 157.55.39.238
    deny from 158.255.161.75
    deny from 207.46.13.144
    deny from 188.244.36.209
    deny from 217.10.47.109 
    
  69. Елена

    моего IP нет.

  70. Степан => автор блога Степан => автор блога

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

  71. Галина

    Степан, и снова здравствуйте! Для меня этот пост ваш – просто хрестоматия, честно! Уже десятки раз, наверное, заходила – чтобы без него делала! Но сейчас снова “наболело”: создавала в свое время, как вы учили выше в ответ на мои вопросы. Ну, что-то не успела до ума довести. Потом сменила хостинг, все нормально работало. На днях завалил один ip – вырубал сайт(с хостинла сказали, что это гугловский и его надо… заблокировать. Полезла в cPanel и в папке htaccess обнаружило вот такое начало:

    "# BEGIN WordPress
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    "
    

    Удалять “без спроса” боюсь. Не подскажите, что это и можно ли его грохнуть?
    А за пост ваш и ваш блог – спасибо еще раз вам! :!:

  72. Степан => автор блога Степан => автор блога

    Здравствуйте, Галина! Это стандартный код для WordPress. Здесь удалять ничего не надо.

  73. Виктор

    Здравствуйте!

    Добавил в хтацесс эти строчки:

    order allow,deny
    deny from all

    order allow,deny
    deny from all
    satisfy all

    Теперь не могу зайти в cPanel. Как убрать их?

    Спасибо!

  74. Степан => автор блога Степан => автор блога

    Здравствуйте!
    Зайдите через FTP и в корне сайта найдете ваш файл “.htaccess “.
    Скопируйте и откройте файл. Удалите все то, что вам не нужно и залейте назад через FTP.

  75. Роман

    Благодарю за такую классную статью, подобрал себе, то что мне было нужно, только с помощью вас разобрался. :smokes: :smokes:

  76. Екатерина

    Спасибо, что разъяснили, а то для меня это пока тёмный лес, я ведь только начинаю вести свой блог. :!:

  77. Степан => автор блога Степан => автор блога

    Пожалуйста, Екатерина! Буду рад, если Вы частенько будете заходить в гости на мой блог!

  78. Степан => автор блога Степан => автор блога

    Спасибо, Роман, приятно слышать такие слова!

  79. Игор

    Скажите пожалуйста, этот код:

    AuthUserFile /dev/null
    AuthGroupFile /dev/null
    AuthName “Example Access Control”
    AuthType Basic

    order allow, deny
    deny from all
    allow from xx.xxx.xxx.xxx

    в какой htaccess вставлять, тот что в корне или wp-admin? Не понятно мне

  80. Игор

    похоже, что в wp-admin

  81. Степан => автор блога Степан => автор блога

    Здравствуйте. Вы можете поместить файл htaccess в папку wp-admin и оставить в нем код:

    order allow, deny
    deny from all
    allow from xx.xxx.xxx.xxx
    

    Это достаточно, чтобы запретить доступ к админке всем кроме вашего ip.

  82. Степан => автор блога Степан => автор блога

    совершенно верно

  83. Сергей

    Добрый день! Я вношу изменения в файл .htaccess, а через некоторое время у меня все изменения теряются и снова первоначальный файл. Видимо, это делает сам WP. Скажите, пожалуйста, как мне запретить перезаписывать файл без моего ведома?

    Заранее спасибо.

  84. Степан => автор блога Степан => автор блога

    Здравствуйте, Сергей! Проверьте плагины, если у Вас такой, который редактирует файл “.htaccess” из админки? Если есть, попробуйте его деактивировать или запретить делать изменение в файле (если есть такая возможность плагина). Пробуйте через ФТП сделать исправление файла “.htaccess”. Все, смотрите на результат.

  85. Сергей

    Степан, добрый день. Спасибо за ответ. У меня тогда вопрос: каким инструментом можно выяснить, редактирует ли какой-либо плагин файл .htaccess именно из админки?)
    Заранее спасибо.

  86. Степан => автор блога Степан => автор блога

    Перейдите в админке “плагины” => “установленные”. И проверьте весь список, по названию, какие плагины у Вас установлены. Выделили название плагина, в поиске Яндексе или Гугла проверили, что это за плагин и за что он отвечает.

  87. Сергей

    Степан, благодарю Вас. Так и сделаю)

  88. Степан => автор блога Степан => автор блога

    Пожалуйста, Сергей! Будут вопросы, пишите!

  89. Станислав

    Здравствуйте, подскажите, пожалуйста, что такое “Вредоносный код добавлялся из-за бэкдора”? У меня была похожая проблема на Джумле 3. В файл htaccess прописалась всякая хрень, а я не могу не удалить этот файл, не перезаписать, не изменить содержимое. Все возвращается после сохранения. Не придумал ничего лучше, как снести сайт и поменять движок на ВордПресс.

    И еще вопрос по статье (наверное к автору блога) В какую часть кода вставлять все Ваши рекомендации: до основного кода, в основной код или после?

  90. Степан => автор блога Степан => автор блога

    Здравствуйте, Станислав! Можно поместить код до основного или после основного кода (перед # BEGIN WordPress или после # END WordPress)!

  91. Дмитрий

    Здравствуйте Степан. Очень полезная статья! Я как раз борюсь в вредоносным кодом, который прописывается в файлах темы в папке JS. Думаю закрытие всего чего можно должно помочь.
    Не большая просьба, файлов htaccess в папке сайта в разных местах несколько, не могли бы Вы подписать какой код располагать в каких месторождениях файла htaccess. Почитал всю ветку комментариев к статье, и смотрю много у кого возникает такой вопрос.

  92. Дмитрий

    В главной папке сайта, у меня в файле htaccess прописано вот так

    # BEGIN WordPress
    
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    
    
    # END WordPress
    

    Всё ли тут нормально? Немного не совпадает со стандартным, образцом в статье. Ни вирус у меня тут прописался случайно, Который мне уже все нервы вытрепал редиректом на порносайты в мобильной версии моего сайта, который я уже год целый выловить не могу. Только вовремя вылавливаю прописанный им вредоносный код в JS файлах, а сам вирус найти не могу, и специалисты моего хостинга тоже развели руками. Может Вы подскажете где его можно найти, или хотя бы как защититься от прописания вредоносного кода редиректа. Заранее благодарен!

  93. Дмитрий

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

    # BEGIN WordPress
    
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    
    
    # END WordPress
    
  94. Дмитрий

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

  95. Дмитрий

    Через форму не получаестя, у Вас нет поля прикрепления файла. Как можно отправить Вам Степан?

  96. Степан => автор блога Степан => автор блога

    Здравствуйте, Дмитрий!
    Если Вы хотите защитить админ – создаете в папке “wp-admin” файл “.htaccess” и вставляете туда весь код для защиты админки.
    Если вы хотите защитить такие файлы как “wp-config.php”, “Защита htaccess” или вставить “Редиректы”, все это прописываем в файле “.htaccess” который находиться в корне сайта.

  97. Степан => автор блога Степан => автор блога

    Дмитрий, здесь все нормально!
    Перенаправление идет со всех страниц или только с определенных?
    У Вас сразу появилась эта проблема после установки “темы” или прошло время? Может после Установки плагина, вы заметили изменение?
    Дайте мне ответы на эти вопросы и может я смогу чем-то помочь.

  98. Степан => автор блога Степан => автор блога

    Перед кнопкой “Отправить” в комментариях есть текст “Чтобы добавить в комментарий код HTML, PHP, CSS, JavaScript, нужно сделать так…”. Попробуйте отправить код в комментариях именно таким способом!

  99. Степан => автор блога Степан => автор блога

    Вставляйте код прямо в сообщение!

  100. Дмитрий

    Наставил везде htaccess, закрыл всё что можно, вредоносный код удалил. Пока полёт нормальный.
    А перенаправляло сразу, сайт только начинает загружаться, и переброс.

  101. Дмитрий

    Спасибо Степан за статью и за отзыв на призыв помощи. Если опять вирус проявится напишу обязательно!

  102. Степан => автор блога Степан => автор блога

    Пожалуйста, Дмитрий! Конечно пишите, буду рад помочь!

  103. Дмитрий

    Здравствуйте Степан. Не спасли мой сайт файлы htaccess (( вирус опять в JS файле темы прописал вредоносный код, и права на файл поменял на 777. Пожалуйста, помогите советом, где мне найти эту заразу? Я уже год с ней мучаюсь, никто помочь не может. И пароли везде менял, на базе данных, в FTP, в админке, на админуку дополнительную защиту поствил, можно только 3 раза набрать не правильно, потом блокирует. По вашим советам файлами htaccess все места защитил. Я уже не знаю что делать(((

  104. Дмитрий

    И вот ещё обнаружил, в htaccess дописался код начинается с <FilesMatch подскажите что он делает? Я до него идут коды с вашей статьи.

    # защита wp-content
    Order deny,allow
    Deny from all
    <Files ~ ".(xml|css|jpe?g|png|gif|js)$">
    Allow from all
    </Files>
    # защита wp-config.php
    <files wp-config.php>
    order allow,deny
    deny from all
    </files><FilesMatch "\.(?i:php)$">
      <IfModule !mod_authz_core.c>
        Order allow,deny
        Deny from all
      </IfModule>
      <IfModule mod_authz_core.c>
        Require all denied
      </IfModule>
    </FilesMatch>
  105. Степан => автор блога Степан => автор блога

    Здравствуйте, Дмитрий!
    Попробуйте установить плагин firewall2
    А пробовали другой шаблон, а этот удалить?

  106. Дмитрий

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

  107. Степан => автор блога Степан => автор блога

    Не могу понять, какой-то запрет на файл. Но я не уверен на 100%, что я прав.

  108. Степан => автор блога Степан => автор блога

    Дмитрий, поставьте еще плагин – AntiVirus
    AntiVirus – плагин служит для проверки вашего блога на наличие вирусов и эксплойтов. Есть возможность настроить автоматическую проверку с отправкой отчета на e-mail.
    Также почитайте вот эти две статьи:
    Как проверить сайт на вирусы, найти и удалить их?
    Способы защиты сайта WordPress
    Должно помочь

  109. Дмитрий

    Спасибо Степан за поддержку! Всё сделал как Вы посоветовали. Надеюсь зараза больше не пролезет! Онлай сервисы никакой угрозы не нашли, даже когда сайт был с вирусом, ни Яндекс ни Гугл не видели сайт как вредоносный или опасный.

  110. Дмитрий

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

  111. Степан => автор блога Степан => автор блога

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

  112. Дмитрий

    Степан, ты смог в теме вирус найти? Я заплачу.

  113. Степан => автор блога Степан => автор блога

    Я Вам отправил на почту свой email

  114. kivgosha

    Здравствуйте! Вставил ваш код в хтачес и сайт пропал, выдает ошибку сервера, поменял на свой адрес сайта сделал все правильно. Что-то не правильно, так что будьте осторожны! Убрал код, все восстановилось. Код вот этот.

    RewriteEngine on
    RewriteCond %{HTTP_REFERER} !^$
    RewriteCond %{HTTP_REFERER} !^https://(www\.)?ваш-сайт.com/.*$ [NC]
    RewriteRule\.(png|gif|jpg|jpeg)$ https://www.ваш-сайт.com/stopimg.gif [R,L]

  115. Степан => автор блога Степан => автор блога

    Здравствуйте! Вы так и вставляли код в таком виде как в комментарии? Или все же делали какие-то исправления?

  116. Степан => автор блога Степан => автор блога

    И тишина!
    Ладно, для все, кто захочет вставить этот код:

    RewriteEngine on
    RewriteCond %{HTTP_REFERER} !^$
    RewriteCond %{HTTP_REFERER} !^https://(www\.)?ваш-сайт.com/.*$ [NC]
    RewriteRule\.(png|gif|jpg|jpeg)$ https://www.ваш-сайт.com/stopimg.gif [R,L]
    

    замените “ваш-сайт.com” и на свой, например “bloggood.ru”

  117. kivgosha

    Степан, изменений в коде не делал кроме своей ссылки на сайт вместо (ваш сайт)!

  118. Степан => автор блога Степан => автор блога

    Напишите в комментариях как вы написали. Хочу проверить все ли верно.

  119. Сергей

    Степан, здравствуйте!
    Можете ли Вы меня проконсультировать? Если перейти по Вашему сайту на адрес https://bloggood.ru/wp-content/uploads/, то видна структура папок.
    Если перейти ко мне на сайт по аналогичному адресу http: //название_сайта/wp-content/uploads/, то у меня вылетает запрет (ошибка 403).
    При этом загруженные картинки индексируются нормально.
    Неудобство в том, что в кабинете вебмастера Яндекса у меня отсутствие доступа к папке uploads фиксируется как ошибка 403.
    Повторюсь, что изображения в этой папке uploads поисковиком индексируются нормально, то вот есть такая ошибка.
    В общем файле htaccess у меня стоит запрет PHP в папке загрузок. Отдельного файла htaccess в папке uploads у меня нет.
    Степан, подскажите, пожалуйста, как можно снять такую ошибку 403?
    Заранее спасибо.

  120. Степан => автор блога Степан => автор блога

    Здравствуйте, Сергей! Вышлите мне Ваш htaccess

  121. Сергей

    Доброго утра, Степан! Вчера написал Вам через форму обратной связи.

    С уважением,
    Сергей

  122. Степан => автор блога Степан => автор блога

    Доброе утро!
    Я сегодня посмотрю!

  123. Сергей

    Степан, здравствуйте! Отправил Вам файл на почту.

  124. Сергей

    Здравствуйте. Извиняюсь за глупый вопрос. htaccess стоит стандартный, но все редиректы работают. Т.е что бы ни набирал перед и после домена (www, http, index, / и т.д.), в строке браузера появляется site.ru Т.е. все уже работает и никаких дублей нет?

  125. Степан => автор блога Степан => автор блога

    Здравствуйте, Сергей! Я бы так сказал, что склейка домена произошла успешно. Если вы используете движок (WordPress, Joomla и т. д.), то это не достаточно, если сайт создавали на чистом html или php то, можно сказать, что никаких дублей у вас нет.
    Если Вас запутал, напишите, объясню подробней.
    Спасибо за комментарий!

  126. Simon

    Исправьте рекомендуемые кода…
    Просмотрите внимательно там почему-то слэши стоят лишние и не правильно…
    Будьте внимательны выставляя код публично,
    Ну, как бы – он должен работать как я понимаю или вы думаете иначе? :)
    \Спасибо.

  127. Simon

    ВОТ НАПРИМЕР КАК НАДО

    # ot vorovstva kontenta foto
    RewriteEngine On
    RewriteCond %{HTTP_REFERER} !^$
    RewriteCond %{HTTP_REFERER} !^https://(www.)?ваш-домен.ru/.*$ [NC]
    RewriteRule .(png|gif|jpg|jpeg)$ https://www.ваш-домен.ru/hotstop.gif [R,L]
    

    hotstop.gif имя вашей картинки в корне хостинга!

  128. Степан => автор блога Степан => автор блога

    “почему-то слэши стоят лишние” – где именно лишении? Там не один код.
    Если знаете что нибудь больше за меня про файл “htaccess”, расскажите в комментариях.
    А вот последнего предложения я вообще не понял – “Ну, как бы – он должен работать как я понимаю или вы думаете иначе?”
    Спасибо!

  129. Степан => автор блога Степан => автор блога

    Хорошо, объясните почему не надо “\”?

  130. Simon

    Кто бы мне объяснил? Нашел три подобных кода все отличаются а вот подробно я не программист код не знаю. Если вы знаете объясните вот три кода разных:

    # Вариает 1
    RewriteEngine On
    #Replace ?mysite\.com/ with your blog url
    RewriteCond %{HTTP_REFERER} !^https://(.+\.)?домен\.ru/ [NC]
    RewriteCond %{HTTP_REFERER} !^$
    #Replace /images/nohotlink.jpg with your “don’t hotlink” image url
    RewriteRule .*\.(jpe?g|gif|bmp|png)$ /images/nohotlink.jpg [L]

    # Вариаент 2
    RewriteEngine on
    RewriteCond %{HTTP_REFERER} !^https://(www\.)?домен.ru/.*$ [NC]
    RewriteCond %{HTTP_REFERER} !^$
    RewriteRule\.(png|gif|jpg|jpeg)$ https://www.домен.ru/hotlink.gif [R,L]

    # Вариаент 3
    RewriteEngine on
    RewriteCond %{HTTP_REFERER} !^$
    RewriteCond %{HTTP_REFERER} !^https://(www.)?домен.ru/.*$ [NC]
    RewriteRule .(png|gif|jpg|jpeg)$ https://www.домен.ru/hotstop.gif [R,L]

    Вот… если можете объяснить разницу и как всё таки правильно написать этот код? И ещё, как проверить на работоспособность этот код реально?

  131. Simon

    Вот этот код у меня не работает вообще блокирует сайт
    # zaschita wp-content
    Order deny,allow
    Deny from all

    Allow from all

    Там выше было типа он защищает контент… получается этот код закрывает ваще доступ к файлам и сайт не работает.

  132. Simon

    Чет подъело код отправленный вам…

    # zaschita wp-content
    Order deny,allow
    Deny from all

    Allow from all

  133. Наталья

    Здравствуйте. Подскажите пожалуйста, насчет своих страниц ошибок 404, 401, 500.
    Где располагать файлы страниц ошибок?
    Если по аналогии, то 404.php у меня лежит в папке используемой темы вордпресс, но в корне сайта, в .htaccess нет никого упоминания в стиле “ErrorDocument 404 /404.html”
    Мне нужно добавить страницу 401.php И также ее нужно из папки используемой темы вордпреса подгружать.
    Строка в .htaccess “ErrorDocument 401 /401.php” пишет, что нет такой страницы.
    Подскажи пожалуйста подробнее, куда выкладывать файлы ошибок и откуда на них перенаправлять (может я вообще не то делаю?)

  134. Степан => автор блога Степан => автор блога

    Ваш первый коммент меня ввел в ступор, особенно вот эти слова “Будьте внимательны выставляя код публично”.
    Я уж подумал профи пишет :)
    Знаете, бывает, что есть одна цель а к цели можно идти разными путями. Так и в программировании, нет определенной формулы. Можно различными способами дойти до одного и того же результата. У кого-то код получиться короче а у кого-то длиннее.
    Мое мнение, все эти три кода верны. Результат ведь рабочий, а это главное :arrow: .

  135. Степан => автор блога Степан => автор блога

    А вот тут я вообще вас не понял. Где Вы этот код взяли. Расскажите что Вы делаете и что хотите сделать.
    Может код не весть отправили. Пробуйте код отправлять через [code]

  136. Степан => автор блога Степан => автор блога

    Чтобы добавить в комментарий код HTML, PHP, CSS, JavaScript, нужно сделать так: [ code ] ваш код [ /code ]
    * без пробелов [ code ]

  137. Степан => автор блога Степан => автор блога

    Насчет страницы 404 почитайте тут: https://bloggood.ru/wordpress/kak-sozdat-prostuyu-stranicu-oshibki-404-na-wordpress.html/

  138. Наталья

    Спасибо, Степан.
    С 404 проблем нет.
    А вот куда положить файл 401.php и 500.php? В корень?
    чтобы сработало правило в .htaccess
    “ErrorDocument 401 /401.php
    ErrorDocument 500 /500.php”
    ?

  139. Степан => автор блога Степан => автор блога

    Наталья, все в папку с темой

  140. Simon

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

  141. Лариса

    Спасибо большое за статью! Вы не подскажите, что означает эта строка, которая 2 дня назад начала появлятся в моем файле htaccess?

    RewriteRule ^_([0-9]+)_.*_[0-9]+_[0-9]+_[0-9]+_([^\d\/]+)_.*_.*_([0-9]+)_[0-9]+_[0-9]+$ ?$2$1=$3&%{QUERY_STRING}[L]

    Сначала строка появляется одна, потом 2, и сайт уже перестает работать.

  142. Степан => автор блога Степан => автор блога

    Оно смотрит, если в адресной строке написано что-то подходящее под регулярное выражение ^_([0-9]+)_.*_[0-9]+_[0-9]+_[0-9]+_([^\d\/]+)_.*_.*_([0-9]+)_[0-9]+_[0-9]+$,
    то переадресовывает запрос на /index?$2$1=$3&%{QUERY_STRING}
    Для того, чтобы понять, что там написано (что куда переадресовывается), нужно почитать о замене по регулярному выражению (для любого ЯП – сейчас в них (рег.выр) везде (в любом ЯП) используется синтаксис Perl’a)

  143. Владимир Николаевич

    Степан, искренне благодарю за статью. В комментах, ответы на вопросы понятные. К меня на сайте стоит стандартный .htaccess. До прочтения Вашей статьи я как-то не заморачивался с этим файлом. Оказывается, что он может выполнять так много функций. За некоторые из них люди просят хорошие деньги, у Вас можно взять коды даром! Теперь не знаю, начинать экспериментировать с .htaccess, или оставить так как есть. Как мне представляется, у меня проблема на сайте с тем, что Яндекс вместо 500 записей, показывает такую картинку:
    Загруженные страницы 3076
    Страницы в поиске 2334
    Исключённые страницы 503
    Внешние ссылки 1341
    При проверке Вэб -мастером пишет Отсутствуют мета-теги и перечень страниц, где ссылки в на картинки. Подскажите пожалуйста, как быть? Мне трудно постигнуть науку кодов и других манипуляция для того, чтобы сайт работал нормально.

  144. Степан => автор блога Степан => автор блога

    Здравствуйте, Владимир Николаевич!
    Если у Вас такая ситуация, почитайте статьи, где рассказывают, как убрать дубли страниц для WordPress

  145. Вася

    Скажите, а как склеить адреса со / и без / в конце адреса?

  146. Степан => автор блога Степан => автор блога

    Не могу понял зачем вам это нужно.
    Склейка адресов с www и без www для поисковых систем а тут что-то новенькое.
    Где Вы такое вычитали, что нужно так делать?

  147. Татьяна М.

    Здравствуйте,Степан!У меня вот такая проблема,создала недавно сайт,он еще пустой правда.Перевела на ssl.В общих настройках вордпресс изменила путь с http на https.И все,теперь ни один браузер не пускает в админ панель. Пишет “Страница tm-01.ru не работает.Сайт tm-01.ru выполнил переадресацию слишком много раз.”Удаление куков ничего не изменило.Может быть в файле htaccess надо что то прописать?У меня он выглядит вот так:

    # BEGIN WordPress
    
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    
    
    # END WordPress
    
  148. Виктор

    Хотел запретить доступ к папке wp-content и wp-includes. Сделал как написано, возникли проблемы с редактором текста. Т.е. захожу в созданную запись а там белый текст на белом фоне и нет редактора. Пришлось их удалить, без них все ок. Почему так?

  149. Степан => автор блога Степан => автор блога

    Здравствуйте, Татьяна!
    С файлом “htaccess” все нормально.
    Какие плагины стояли?
    Вы пробовали писать в тех. поддержку хостинга?

  150. Степан => автор блога Степан => автор блога

    Сомневаюсь, Виктор, что Вы сделали так, как написано! У меня все работает.
    Распишете до каждой мелочи как Вы сделали.

  151. Александр

    Добрый день, Степан.
    Я чайник во всех этих вопросах. Делаю сайт на ВП не могу понять, главная стр. открывается, а все остальные выдают ошибку 500.
    Фаил в первоначальном виде, не подскажете в чем проблема?

  152. Степан => автор блога Степан => автор блога

    Здравствуйте, Александр!
    Раньше работало?
    Попробуйте поменять тему.

  153. Сергей Петров

    Александр, здравствуйте! У меня тоже пару дней назад получилась такая ситуация на клиентском сайте: главная страница открывается прекрасно, все остальные – ошибка 500.
    Я сделал просто – восстановил сайт на ближайшую дату. Всё заработало.

  154. Степан => автор блога Степан => автор блога

    Здравствуйте, Сергей Петров!
    А Вам удалось выяснить причину?
    Я так понял, это случилось после обновления вордпресс?

  155. Сергей Петров

    Здравствуйте, Степан!

    Честно говоря, я не понял, в чем была причина. Версия сайта сейчас – последняя.

    Кроме того, могу сказать, чего я точно не делал: не корректировал файл .htaccess и не изменял права доступа к нему.

  156. Степан => автор блога Степан => автор блога

    Спасибо, Вам за ответ!

  157. Александр

    Спасибо, причину устранили.

  158. Степан => автор блога Степан => автор блога

    Что помогло, расскажите пожалуйста?

  159. Александр

    Плагин поправили

  160. Александр

    Добрый день. У меня такая проблема, может кто подскажет.
    Сайт зарегистрирован в зоне РФ.
    Стр. сайт.рф/витрина/ дублирует сайт.рф
    Как правильно сделать перенаправление? Если можно с примером. Сейчас это выглядит так) Но не проходит…

    Redirect 301 https://сайт/страница/ https://сайт

    Впринципе как и не работает ред 301 с www на без

    Options +FollowSymLinks
    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^www.сайт$ [NC]
    RewriteRule ^(.*)$ https://сайт/$1 [R=301,L]

    Если кто подскажет буду очень признателен!

  161. Почитал внимательно Вашу статью. Поправил коды но ничего не поменялось сервис проверки пишет что перенаправление не настроено. Посмотрите пожалуйста, где накасячил?

  162. Степан

    Добрый день!

    У меня сайт на HTTPS, получается код ,который вы написали выше в статье не подойдет для моего htaccess?

    Нужно везде менять (и в самом синтаксисе кода) HTTP на HTTPS и все? Или нужно что-то другое или дополнительное делать?

    Помогите, пожалуйста.

  163. Степан => автор блога Степан => автор блога

    Здравствуйте, Александр!
    Посмотрите вот эти две статьи и Вы найдете ответ на вопрос, как правильно сделать перенаправление:
    1. Переадресация страницы на другую страницу или сайт
    2. Перенаправление на другую страницу с помощью PHP, JavaScript или HTML

  164. Степан => автор блога Степан => автор блога

    попробуйте вот так:

    RewriteCond %{REQUEST_URI} ^/название страницы.html$
    RewriteRule ^.*$ https://адрес сайта для переадресации/? [R=301,L]
    
  165. Степан => автор блога Степан => автор блога

    Здравствуйте!
    Перенаправление на безопасное соединение https (Редирект с http на https)

    RewriteEngine On
    RewriteCond %{HTTPS} !on
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
    
  166. Степан

    Нет, вы не поняли. ну.. или я не понял.

    Перенаправление на безопасное соединение у меня давно стоит, все настроено как надо.

    Я так понимаю нужно сделать просто редиректы, что уже сделано и все?

    Все остальное (включая и то что у вас в статье) оставить как есть?

    Там просто у вас идет код с http, вот меня и смутило это..

    К примеру вот это:

    ewriteEngine On
    RewriteCond %{REQUEST_METHOD} POST
    RewriteCond %{REQUEST_URI} .wp-comments-post\.php*
    RewriteCond %{HTTP_REFERER} !.*ваш домен.ru.* [OR]
    RewriteCond %{HTTP_USER_AGENT} ^$
    RewriteRule (.*) ^https://%{REMOTE_ADDR}/$ [R=301,L]
    

    ну и еще парочка примеров выше из статьи.

  167. Степан

    Подскажите, пожалуйста, долго ли еще ждать ответ?

  168. Степан => автор блога Степан => автор блога

    Если я вас правельно понял, то, где стоит у меня http, замените на https

  169. Степан => автор блога Степан => автор блога

    Уже ответил!

  170. Александр

    Степан, при всем уважении, коды я и сам мог найти в интернете. Я прошу вставить именно как это будет у меня.. Т.К. в зоне РФ не все так просто.
    Спасибо!

  171. Степан => автор блога Степан => автор блога

    я не могу понять в чем проблема? Там все очень просто!
    Я вам дал готовые кода. Неужели так тяжело к коду подставить ваш сайт? Что мешает на сайт прописать вот так:

    <script type="text/javascript">
    location.replace("https://игрушки-спб.рф");
    </script> 
    
  172. Степан

    ВО! да) Спасибо!)

  173. Александра

    Степан, добрый вечер!
    Могли бы вы уточнить, что означает фраза:
    “Важно: обратите внимание на image/, возможно в вашем случае папку с картинками нужно поменять.”
    Какую папку с картинками? Не очень понятно)

  174. Степан => автор блога Степан => автор блога

    Здравствуйте, Александр!
    Если у Вас папка называется “img” а Вы в коде пропишите “image”, код работать не будет.
    Вы это хотели узнать или я Вас не так понял?

  175. Валерия

    Здравствуйте, Степан! Вы так понятно объясняете такие важные премудрости – не каждый умеет, от всей души самая горячая признательность! У меня сейчас тоже вопрос, с которым сама пока не могу справиться. Удалила к черту “охранный” плагин, но записи от него в .htaccess остались – в частности, доступ в админку только с домашнего ip. Оно бы и хорошо, если бы не поездки время от времени. Если можно, посоветуйте, как снять ограничения, чтобы не убрать из записи чего лишнего и не остаться вообще без доступа. Запись в файле такого рода:

    #AIOWPS_IP_BLACKLIST_END
    #AIOWPS_LOGIN_WHITELIST_START

    Order Allow,Deny
    Allow from сайт.ru
    Allow from хх.ххх.ххх.ххх

    Require all denied
    Require local
    Require ip ххх.х.х.х
    Require host сайт.ru
    Require ip ххх.хх.ххх.ххх

    С уважением.

  176. Степан => автор блога Степан => автор блога

    Здравствуйте, Валерия!
    Можете удалить этот код. Но удаляйте через FTP или файл менеджер (на хостинге) и оставьте на всякий случай копию файла .htaccess, если что-то пойдет не так.

  177. Евгений

    Добрый день, Степан!
    Вижу, что тема остается горячей уже много лет) Увы, я тоже вынужден ее подогреть.
    Подключил к сайту SSL, сайт вроде бы переехал на защищенный адрес, но Яндекс вебмастер начал ругаться “сервер отвечает редиректом на запрос robots.txt”. Почитал статьи – советуют прописать в htaccess примерно это “RewriteCond %{REQUEST_URI} !robots.txt”. Но сервер все равно отвечает редиректом. Перепробовал редиректы из вашей замечательной статьи. Результат аналогичный. Host в Роботсе указан верно. Не могу понять в чем дело. Сможете направить мои поиски в нужное русло?

  178. Vadim

    Здравствйте. Посмотрите пожалуйста правильность.

    RewriteCond %{REQUEST_URI} ^http://domen.ru/poligrafiya/$
    RewriteRule ^.*$ http://domen.ru/pechat-pechatnoy-produkcii/$1 [R=301,L]
    

    Нужно сделать редирект со старой страницы на новую

  179. Степан => автор блога Степан => автор блога
    RewriteCond %{REQUEST_URI} ^/poligrafiya/$
    RewriteRule ^.*$ http://domen.ru/pechat-pechatnoy-produkcii/$1 [R=301,L]
    
  180. Степан => автор блога Степан => автор блога

    Здравствуйте, Евгений.
    Можно адрес сайта, я кое что хочу проверить.

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

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

Чтобы добавить в комментарий код HTML, PHP, CSS, JavaScript, нужно сделать так: [code] ваш код [/code]

Метки: ,

Мои цели на 2018-2019:

1). Закончить тему «Bootstrap»

2). Закончить тему «Все про PHP и MySQL»

3). Создать портфолио и мини интернет-магазин шаблонов

4). Довести количество статей до 800

5). Добиться посещаемости 3000 человек/сутки

6). Увеличить число подписчиков до 250

Статистика по блогу

Количество записей на блоге: 801
Количество страниц на блоге: 20
Количество рубрик на блоге: 28
Количество меток на блоге: 72
Количество комментариев на блоге: 4529