Правильный htaccess wordpress – Как организовать правильные редиректы в WordPress (https, без www, вход в админку)? — Хабр Q&A

Правильный htaccess для WordPress



Доброго времени суток всем читателям моего блога! Недавно пытался сделать 301 редирект на своем автомобильном сайте, который попал под АГС, в связи с изменением всех ссылок на сайте и наткнулся на создание оптимального .htaccess файла для WordPress сайтов, который будет редиректить все технические страницы, что бы не плодить дубли страниц в поисковиках.

Выдержка из википедии, дабы не возникало ненужных вопросов:

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

Код стандартного файла htaccess для WordPress

И так, для начало приведу код стандартного файла .htaccess для WordPress:

# 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

# 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

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

Правильная настройка файла htaccess для WordPress

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

# BEGIN WordPress <IfModule mod_rewrite.c> Options +FollowSymLinks -Indexes RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteRule (.+)/feed /$1 [R=301,L] RewriteRule (.+)/attachment /$1 [R=301,L] RewriteRule (.+)/comment-page /$1 [R=301,L] RewriteRule (.+)/comments /$1 [R=301,L] RewriteRule (.+)/trackback /$1 [R=301,L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> <Files wp-config.php> # Запрещаем всем доступ к файлу wp-config.php order allow,deny deny from all </Files> <Files .htaccess> order allow,deny deny from all </Files> # END WordPress

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

# BEGIN WordPress

<IfModule mod_rewrite.c>

Options +FollowSymLinks -Indexes

RewriteEngine On

RewriteBase /

RewriteRule ^index\.php$ - [L]

RewriteRule (.+)/feed /$1 [R=301,L]

RewriteRule (.+)/attachment /$1 [R=301,L]

RewriteRule (.+)/comment-page /$1 [R=301,L]

RewriteRule (.+)/comments /$1 [R=301,L]

RewriteRule (.+)/trackback /$1 [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . /index.php [L]

</IfModule>

<Files wp-config.php>

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

order allow,deny

deny from all

</Files>

<Files .htaccess>

order allow,deny

deny from all

</Files>

 

# END WordPress

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

Эта часть кода отвечает за 301 редирект со страниц дублей, дабы не распылять вес и не создавать себе проблем в виде соплей в google:

RewriteRule (.+)/feed /$1 [R=301,L] RewriteRule (.+)/attachment /$1 [R=301,L] RewriteRule (.+)/comment-page /$1 [R=301,L] RewriteRule (.+)/comments /$1 [R=301,L] RewriteRule (.+)/trackback /$1 [R=301,L]

RewriteRule (.+)/feed /$1 [R=301,L]

RewriteRule (.+)/attachment /$1 [R=301,L]

RewriteRule (.+)/comment-page /$1 [R=301,L]

RewriteRule (.+)/comments /$1 [R=301,L]

RewriteRule (.+)/trackback /$1 [R=301,L]

Данная часть отвечает за то, что бы закрыть пользователям листинг файлов и папок на сервере:

Options +FollowSymLinks -Indexes

Options +FollowSymLinks -Indexes

Защита файла wp-config.php от несанкционированного доступа, что бы не утащили данные от нашей базы данных:

<Files wp-config.php> # Запрещаем всем доступ к файлу wp-config.php order allow,deny deny from all </Files>

<Files wp-config.php>

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

order allow,deny

deny from all

</Files>

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

<Files .htaccess> order allow,deny deny from all </Files>

<Files .htaccess>

order allow,deny

deny from all

</Files>

Вот в общем и все, что я сегодня хотел рассказать и показать. Короче, мира, добра, любви, бобла, трафа и подписывайтесь на обновления блога!

Теги: пример правильного файла htaccess для вордпресс

Подпишитесь и получайте новые статьи мгновенно на электронную почту

Правильный htaccess для WordPress - Как два байта переслать!

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

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

По умолчанию для системы WordPress внутреннее содержимое файла .htaccess имеет следующий вид:

# 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

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

Рассмотри наиболее интересные и необходимые функции, которые представляют интерес при работе с сайтом.

Настройка редиректа 301

с www на без www в адресе сайта.

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.name\.ru$ [NC]
RewriteRule ^(.*)$ http://name.ru/$1 [R=301,L]

и наоборот

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^name\.ru$ [NC]
RewriteRule ^(.*)$ http://www.name.ru/$1 [R=301,L]

вместо name нужно подставить конкретное имя домена, зону тоже нужно указывать свою, в данном примере это зона .ru

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

AddDefaultCharset UTF-8

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

<Files .htaccess>
 order allow,deny
 deny from all
 </Files>

Защита файла wp-config.php

<Files wp-config.php>
 order allow,deny
 deny from all
 </Files>

 Запрет доступа по IP адресам

<Limit GET POST>
order allow,deny
deny from 192.168.0.1
deny from 192.168.0.2
allow from all
</Limit>

 ip-адреса, разумеется, нужно указывать конкретные 🙂

Защита от спама

Если вы используете комментарии на сайте, то можно установить дополнительную защиту, чтобы помешать спам-ботам обращаться напрямую к файлу wp-comments-post.php.

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} .wp-comments-post\.php*
RewriteCond %{HTTP_REFERER} !.*name.ru.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule (.*) http://%{REMOTE_ADDR}/$ [R=301,L]
</IfModule>

name.ru - это имя вашего домена

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

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

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

 Дополнительные файлы .htaccess

Файл .htaccess может располагаться и во вложенных папках! В таком случае, прописанные директивы будут относится к файлам внутри этих папок. По такой схеме можно запретить доступ к конкретным файлам. Например, можно создать пустой файл .htaccess внутри папок wp-content и wp-includes. Теперь можно запретить доступ к файлам по их расширениям:

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

Можно запретить доступ к файлам скриптов и стилей:

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

Используйте необходимые настройки и защищайте свои сайты, удачи!

Настройка .htaccess для wordpress? — Хабр Q&A

Здравствуйте! Скажите пожалуйста, объясните... как правильно настроить .htaccess на wordpress. Нужно включить сжатие, добавляю следующий код
# BEGIN GZIP COMPRESSION
<IfModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</IfModule>
# END GZIP COMPRESSION

и ничего не сжимается!
Также нагуглив вот такой код идеального .htaccess, но с ним сайт вообще не загружается и выдает ошибку!
Options +FollowSymLinks -Indexes


RewriteEngine On

# Block out any script trying to base64_encode data within the URL.

RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR]
# Block out any script that includes a <script> tag in URL.

RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]
# Block out any script trying to set a PHP GLOBALS variable via URL.

RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
# Block out any script trying to modify a _REQUEST variable via URL.

RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
# Return 403 Forbidden header and show the content of the root homepage

RewriteRule .* index.php [F]
#
## End - Rewrite rules to block out some common exploits.

#### @RS
# Deny access to php, xml and ini files
# within components and plugins directories
RewriteCond %{REQUEST_FILENAME} -f
RewriteCond %{REQUEST_URI} \.php|\.ini|\.xml [NC]
RewriteCond %{REQUEST_URI} \/components\/ [OR]
RewriteCond %{REQUEST_URI} ^\/includes\/|^\/administrator\/includes\/ [OR]
RewriteCond %{REQUEST_URI} \/language\/ [OR]

RewriteCond %{REQUEST_URI} \/libraries\/ [OR]
RewriteCond %{REQUEST_URI} \/modules\/ [OR]

RewriteCond %{REQUEST_URI} \/plugins\/ [OR]

RewriteCond %{REQUEST_URI} \/templates\/ [OR]
RewriteCond %{REQUEST_URI} \/xmlrpc\/
RewriteRule ^(.*)$ index.php [R=404,L]
#### @RS

#### @RS
# Prevent most common SQL-Injections
RewriteCond %{query_string} concat.*\( [NC,OR]
RewriteCond %{query_string} union.*select.*\( [NC,OR]
RewriteCond %{query_string} union.*all.*select [NC]
RewriteRule ^(.*)$ index.php [F,L]
#### @RS

#### @RS
# Block most common hacking tools
SetEnvIf user-agent "Indy Library" stayout=1
SetEnvIf user-agent "libwww-perl" stayout=1
SetEnvIf user-agent "Wget" stayout=1
deny from env=stayout
#### @RS

## Begin - Custom redirects
#

# If you need to redirect some pages, or set a canonical non-www to

# www redirect (or vice versa), place that code here. Ensure those

# redirects use the correct RewriteRule syntax and the [R=301,L] flags.

#

## End - Custom redirects


##
# Uncomment following line if your webserver's URL

# is not directly related to physical file paths.

# Update Your Joomla! Directory (just / for root).

##

#

RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
#
# If the requested path and file is not /index.php and the request

# has not already been internally rewritten to the index.php script

RewriteCond %{REQUEST_URI} !^/index\.php
# and the request is for something within the component folder,

# or for the site root, or for an extensionless URL, or the

# requested URL ends with one of the listed extensions
RewriteCond %{REQUEST_URI} /component/|(/[^.]*|\.(php|html?|feed|pdf|vcf|raw))$ [NC]
# and the requested path and file doesn't directly match a physical file
RewriteCond %{REQUEST_FILENAME} !-f
# and the requested path and file doesn't directly match a physical folder
RewriteCond %{REQUEST_FILENAME} !-d
# internally rewrite the request to the index.php script
RewriteRule .* index.php [L]
#

<IfModule mod_deflate.c>

AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/javascript text/css application/x-javascript

BrowserMatch ^Mozilla/4 gzip-only-text/html

BrowserMatch ^Mozilla/4.0[678] no-gzip

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

<ifmodule mod_gzip.c>

mod_gzip_on Yes

mod_gzip_item_include file \.js$

mod_gzip_item_include file \.css$ </ifmodule>

<IfModule mod_expires.c>

# Enable expiration control

ExpiresActive On

# CSS and JS expiration: 1 week after request

ExpiresByType text/css "now plus 1 week"

ExpiresByType application/javascript "now plus 1 week"

ExpiresByType application/x-javascript "now plus 1 week"

# Image files expiration: 1 month after request

ExpiresByType image/bmp "now plus 1 month"

ExpiresByType image/gif "now plus 1 month"

ExpiresByType image/jpeg "now plus 1 month"

ExpiresByType image/jp2 "now plus 1 month"

ExpiresByType image/pipeg "now plus 1 month"

ExpiresByType image/png "now plus 1 month"

ExpiresByType image/svg+xml "now plus 1 month"

ExpiresByType image/tiff "now plus 1 month"

ExpiresByType image/vnd.microsoft.icon "now plus 1 month"

ExpiresByType image/x-icon "now plus 1 month"

ExpiresByType image/ico "now plus 1 month"

ExpiresByType image/icon "now plus 1 month"

ExpiresByType text/ico "now plus 1 month"

ExpiresByType application/ico "now plus 1 month"

ExpiresByType image/vnd.wap.wbmp "now plus 1 month"

ExpiresByType application/vnd.wap.wbxml "now plus 1 month"

ExpiresByType application/smil "now plus 1 month"


# Audio files expiration: 1 month after request

ExpiresByType audio/basic "now plus 1 month"

ExpiresByType audio/mid "now plus 1 month"

ExpiresByType audio/midi "now plus 1 month"

ExpiresByType audio/mpeg "now plus 1 month"

ExpiresByType audio/x-aiff "now plus 1 month"
ExpiresByType audio/x-mpegurl "now plus 1 month"

ExpiresByType audio/x-pn-realaudio "now plus 1 month"

ExpiresByType audio/x-wav "now plus 1 month"

# Movie files expiration: 1 month after request

ExpiresByType application/x-shockwave-flash "now plus 1 month"

ExpiresByType x-world/x-vrml "now plus 1 month"

ExpiresByType video/x-msvideo "now plus 1 month"

ExpiresByType video/mpeg "now plus 1 month"

ExpiresByType video/mp4 "now plus 1 month"

ExpiresByType video/quicktime "now plus 1 month"

ExpiresByType video/x-la-asf "now plus 1 month"

ExpiresByType video/x-ms-asf "now plus 1 month"

</IfModule>
########## End - Optimal expiration time


<IfModule mod_headers.c>

<FilesMatch "\.(js|css|xml|gz)$">

Header append Vary: Accept-Encoding

</FilesMatch>

</IfModule>

# 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

<Files wp-config.php>

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

   order allow,deny
 
  deny from all 
 
</Files>

<Files .htaccess>
 
   order allow,deny
 
   deny from all
 </Files>

AddDefaultCharset utf-8

Возможно у кого-то есть идеальный htaccess для wordpress, буду благодарен за помощь!)

Настроить в WordPress редирект на HTTPS за 5 минут

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

Что такое протокол HTTPS

Протокол HTTPS (расшифровка Hypertext Transport Protocol Secure) — это технология, шифрующая информацию между сайтом и пользователем. При вводе информации посетителем и выводе ее на экран, шифруется все, что дает преграду злоумышленникам похитить личные данные.

Технологии применяемые в HTTPS

  • Шифрование. Каждое действие шифруется
  • Безопасность. При изменении и добавлении новых данных они сохраняются
  • Аутентификация. Блокирует небезопасные перенаправления

Почему важно перейти на HTTPS

Причин для перехода на HTTPS может быть несколько.

  • Первая — это небольшой приоритет в выдаче поисковых систем, сообщаете ПС что вы заботитесь о безопасности и конфиденциальности посетителей.
  • Вторая — при сборе контактов (в той же форме комментирования), нужно применять протокол, так как перехватить информацию легко. Часто посетители авторизуются на сайте при помощи социальных сетей.
  • Третья — оплата в интернет магазинах. Если имеется интернет магазин без SSL — сертификата он будет заблокирован и помечен, как небезопасный в любом браузере. Google и Яндекс давно отслеживают такие ресурсы и как минимум не дают им первые позиции, и как максимум помечают как опасные.

Общие принципы перехода на HTTPS

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

  1. Выбрать платный или бесплатный серитификат
  2. Получить персональный ключ
  3. Оформить файл с протоколом в онлайн — центре сертификации
  4. Установить и привязать сертификат к домену
  5. Настроить движок и изменить ссылки

Изменение префиксов в панели вордпресса

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

Общие настройки и изменение протоколаМеняем адрес сайта в админке WordPress

После смены адреса и подключив перенаправление при входе в админ-панель придется по новой вводить логин и пароль. Совет если не помните то заранее их восстановите.

Перенаправление остальных элементов

Чтобы сделать 301 редирект остальных элементов (не записей), картинок, ссылок, таблиц и т.д. нужно установить ненадолго плагин Velvet Blues Update URLs. Чтобы установить плагин:

  • Перейдите в раздел плагины > добавить новый
  • В поле поиск введите название
  • На карточке нажмите кнопку активировать
как выглядит Velvet Blues Update URLs в админпанелиИзображение плагина Velvet Blues Update URLs

Устанавливаем и вводим настройки, заходим в раздел инструменты > Update URLs. В поле Old URL вводим адрес сайта без протокола, а New URL с ним.

Изменение внутренних сылокПерезапись ссылок

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

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

Инструмент начнет работу, и после покажет сводную таблицу сколько элементов изменено. После проделанной операции, можно деактивировать и удалить его из WordPress.

Статистика сколько изменено ссылок Таблица количества измененных URL

Редирект на HTTPS 301 в .htaccess

Завершающим этапом является добавление в WordPress 301 перенаправления в файле htaccess. Он регулирует работу Apache, определим существует ли этот файл на вашем сайте.

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

Идем в корень WordPress и смотрим. Если существует, то открываем его для редактирования, если нет, то создаем. Нужно подключиться к сайту через FTP соединение, мы используем FileZilla. Войдя в корневой каталог (определяем корень по папкам wp-content и wp-admin), находим htaccess и кликом правой кнопкой мыши выбираем «Просмотр/Правка».

Расположение .htaccess в движке wordpressфайл .htaccess в программе FileZilla

В появившемся окне программы, вводим конфигурацию написанную ниже после begin wordpress или перед end wordpress. Сохраняем нажатием

CTRL+S, либо через меню файл-сохранить. Код подходит и для мультисайта с поддоменами.

RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
прописываем код редиректа на HTTPSКуда вставлять код для редиректа HTTPS

После сохранения изменений FileZilla запросит разрешение на перезапись файла htaccess, соглашаемся и программа начнет процесс загрузки.

Это позволит имеющиеся страницы WordPress перевести на https протокол и выводить их автоматически с правильным префиксом. Для проверки работы, зайдите на любую страницу и сотрите букву S, нажмите enter, если редирект с http на https WordPress сработал, то продолжаем.

С помощью плагина Easy HTTPS Redirection

Наиболее простой метод установить плагин, мы советуем Easy HTTPS Redirection. В данном случаем остальные действия делать не нужно. Установив, переходим к настройке.

На страиваем и запускаем Easy HTTPS Redirection
разбор панели Easy HTTPS Redirection
  • Enable automatic redirection — включает переадресацию
  • Apply HTTPS redirection on — первый пункт перенаправляет весь ресурс, во втором можно выставить для отдельных страниц
  • Force resources to use HTTPS URL — данная галочка может дать множество битых ссылок, она принудительно перезаписывает ссылки в статьях. Не все сервисы и ресурсы перешли на безопасное соединение.

Какие проблемы могут возникнуть при переходе на HTTPS

Проблем при переходе на HTTPS немного. Первая причина не убраны со страницы все исходящие и внутренние ссылки с протоколом HTTP. Далее редиректы, неправильно прописанные в htaccess. Не знание специфики WordPress, что и где нужно менять. Что делать в таких ситуациях:

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

Если удобнее учится по видео, то смотрите наш обучающий ролик.

Чеклист всех операций

  • Меняем в панели HTTP на HTTPS
  • Заменяем все ссылки на новые с буквой S
  • Прописываем правила переадресации в htaccess

Мы смогли поставить редирект на HTTPS в cms WordPress и сертификат работает правильно. После всех операций, сайт должен быстро проиндексироваться поисковыми системами и обновлен в выдаче.

10 отличных приемов с .htaccess для WordPress

Внимание!

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

1 — Перенаправляем WordPress RSS поток на feedburner с использованием .htaccess

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

И не забудьте исправить в строке 6 на Ваш код

<IfModule mod_rewrite.c>
 RewriteEngine on
 RewriteCond %{HTTP_USER_AGENT} !FeedBurner [NC]
 RewriteCond %{HTTP_USER_AGENT} !FeedValidator [NC]
 RewriteRule ^feed/?([_0-9a-z-]+)?/?$ httр://feeds2.feedburner.com/wordpress[R=302,NC,L]
</IfModule>

2 — Удалить /category/ из пути в адресе WordPress

По умолчанию категории в WordPress отображаются так: httр://www.wordpress.com/blog/category/wordpress
А это не очень красиво, да и адрес выглядит длинновато.
Сейчас Вы узнаете как исправить это с помощью .htaccess

RewriteRule ^category/(.+)$ httр://www.yourblog.com/$1 [R=301,L]

Теперь категории будут выглядеть как: httр://www.wordpress.com/blog/wordpress

3 — Использование кэша браузера

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

FileETag MTime Size
<ifmodule mod_expires.c>
 <filesmatch ".(jpg|gif|png|css|js)$">
 ExpiresActive on
 ExpiresDefault "access plus 1 year"
 </filesmatch>
</ifmodule>

4 — Сжатие статических данных

Этот код уменьшит объём данных передаваемых между сервером и пользователем за счет их сжатия.

AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/javascript text/css application/x-javascript
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4.0[678] no-gzip
BrowserMatch bMSIE !no-gzip !gzip-only-text/html

5 — Перенаправление постоянных ссылок на основе Дня и имени на /%postname%/

Сначала зайдите в админку WordPress, зайдите в Settings → Permalinks и выберите custom.
Заполните поле с /%postname%/.
Теперь постоянные ссылки будут выглядеть так: httр://www.yourblog.com/name-of-the-post
Теперь нам нужно перенаправить все старые ссылки на новые постоянные.
Внесите в .htaccess следующие строки:

RedirectMatch 301 /([0-9]+)/([0-9]+)/([0-9]+)/(.*)$ httр://www.domain.com/$4

6 — Запретить комментирование если отсутствует referrer

Метод построен на том, что многие спам-боты не передают referer когда постят данные.
Этот код проверяет поле referrerи блокирует отправку комментария если отсутствует referer при обращении к файлу wp-comments-post.php.
Не забудьте в строке 4 вписать домен своего блога

RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} .wp-comments-post.php*
RewriteCond %{HTTP_REFERER} !.*yourblog.com.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule (.*) ^http://%{REMOTE_ADDR}/$ [R=301,L]

7 — Перенаправить пользователя на страницу-заглушку

на время работ на сайте желательно перенаправлять пользователей на временную страницу-заглушку
Замените в строке 2 maintenance.html на название вашего файла.
И в строке 3 впишите свой IP, чтобы вас не перенаправляло на эту заглушку.

302-редирек используется чтобы поисковые системы не проиндексировали содержимое временной страницы.

RewriteEngine on
RewriteCond %{REQUEST_URI} !/maintenance.html$
RewriteCond %{REMOTE_ADDR} !^123.123.123.123
RewriteRule $ /maintenance.html [R=302,L]

8 — Защита блога от хотлинков

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

RewriteEngine On
#Replace ?mysite.com/ with your blog url
RewriteCond %{HTTP_REFERER} !^http://(.+.)?mysite.com/ [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]

9 — Разрешить доступ к wp-admin только с Вашего IP

Дополнительной защитой Вашего блога от взлома может служить ограничение списка адресов, с которых разрешено заходить в админку блога.
Не забудьте вставить свой IP в строке 8.
Если Вы захотите использовать дополнительные адреса для доступа добавьте строки allow from xx.xx.xxx.xx

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

10 — Блокирование спамеров в WordPress через .htaccess

Часто спам-боты ходят с одних и техже IP. Следующий прием поможет блокировать доступ с этих адресов.
Внеси адрес спамера в строке 3.
Можно расширить список заблокированных адресов добавив строки deny from xxx.xx.xxx.xxx.

<Limit GET POST>
order allow,deny
deny from 200.49.176.139
allow from all
</Limit>

WordPress .htaccess — полезные советы

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

Содержание

Большинство WordPress-пользователей первый раз знакомятся с этим файлом, когда пытаются кастомизировать вид постоянных ссылок. Чтоб заполучить те симпатичные ссылки, которые мы все знаем и любим (например, http://www.site.com/sample-post/ вместо http://www.site.com/?p=123), нам нужно добавить что-то типа этого в файл .htaccess:
# 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

Впрочем, эта проблема сейчас решается и прямо из админки WP.

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

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

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

Будьте внимательны!

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

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

1. Защитите .htaccess

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

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

2. Обезопасьте WP-Config.php

Еще один важный файл – это wp-config.php, ведь он содержит информацию об авторизации для базы данных WordPress, а также другие важные настройки сохранения, так что его нужно убрать из общего доступа.

<files wp-config.php>
order allow,deny
deny from all
</files>

3. Защитите /Wp-Content/

Директория wp-content – одна из самых важных  областей вашего WordPress-сайта. Это то место, где хранятся такие жизненно важные файлы, как темы, плагины, загруженные медиа-файлы и файлы кэша, и потому туда так хотят добраться хакеры.

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

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

Вам нужно загрузить данный отдельный файл .htaccess  в главную директорию wp-content, например, www.yourwebsite.com/wp-content/. Теперь  сюда можно загрузить только файлы с расширениями XML, CSS, JPG, JPEG, PNG, Gif и  Javascript, а все остальные типы файлов будут удалены.

4. Заблокируете файлы, не предназначенные для пользователей

Закрыть доступ к определенным файлам можно, добавив этот код в .htaccess:

# Block the include-only files.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^wp-admin/includes/ - [F,L]
RewriteRule !^wp-includes/ - [S=3]
RewriteRule ^wp-includes/[^/]+\.php$ - [F,L]
RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L]
RewriteRule ^wp-includes/theme-compat/ - [F,L]
</IfModule>

5. Ограничьте доступ к админской области

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

# Limit logins and admin by IP
<Limit GET POST PUT>
order deny,allow
deny from all
allow from 12.34.56.78
</Limit>

Не забудьте сменить  12.34.56.78 на ваш собственный IP-адрес (вы можете узнать ваш IP на сайте What Is My IP?). Затем загрузите файл в папку /wp-admin/  вашего сайта, например, www.ваш сайт.com/wp-admin/.

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

allow from 12.34.56.78, 98.76.54.32, 19.82.73.64

6.  Забаньте недоброжелателей

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

<Limit GET POST>
order allow,deny
deny from 123.456.78.9
deny from 987.654.32.1
allow from all
</Limit>

7. Направить посетителей на страницу обслуживания.

Такие плагины, Maintenance, хороши, когда нужно отобразить временное сообщение о том, что сайт находится в разработке, в том случае, если вы что-то там меняете или обновляете движок. Но данные плагины бесполезны в случае возникновения Белого экрана смерти WordPress. Так что, если вы  желаете подготовиться к худшему, рекомендуется создать базовую HTML-страницу, названную  maintenance.html и сообщающую  пользователю о том, что с сайтом у вас сейчас проблемы, и он скоро вернется в онлайн. В случае Белого экрана, просто добавьте данный сниппет в ваш файл .htaccess.

RewriteEngine on
RewriteCond %{REQUEST_URI} !/maintenance.html$
RewriteCond %{REMOTE_ADDR} !^123\.123\.123\.123
RewriteRule $ /maintenance.html [R=302,L]

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

8. Запретите просмотр папок в браузере

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

# disable directory browsing
Options All -Indexes

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

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

## EXPIRES CACHING ##
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType text/css "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresDefault "access 2 days"
</IfModule>
  
## EXPIRES CACHING ##

10. Редирект URL

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

Для изменения  местоположения, нужно всего лишь добавить строчку с редиректом 301 вслед за старой локацией, а потом добавить новую локацию. Вот как это работает:

Redirect 301 /oldpage.html http://www.yourwebsite.com/newpage.html
Redirect 301 /oldfolder/page2.html /folder3/page7.html
Redirect 301 / http://www.mynewwebsite.com/

11. Отключите хотлинкинг

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

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourwebsite.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourotherwebsite.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ http://i.imgur.com/g7ptdBB.png [NC,R,L]

Теперь, когда кто-то просматривает ваше изображение через другой URL, то он просто будет видеть изображение, указанное в последней строчке кода. Это изображение можно заменить на что угодно.

Замечание: отключение хотлинкинга может привести к проблемам с отображением изображений в вашем RSS-фиде.

Файл .htaccess по-умолчанию для WordPress — Технический блог

26 августа 2018  /  WordPress

Эта статья будет полезна тем кто утратил оригинальный файл .htaccess от WordPress сайта. Он (файл) необходим если вы используете веб-сервер Apache.

В повседневной жизни для своих блогов на хостинге я использую связку веб-сервера NGINX и интерпретатор PHP в режиме php-fpm. И со временем «зачистил» код сайта от всех ненужных на мой взгляд файлов, в том числе я удалил .htaccess.

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

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

Минимально необходимый для работы сайта на WordPress файл .htaccess должен содержать следующие строки:


# 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

Данный код был успешно протестирован на WordPress версии 4.9.8

Для чего нужен файл .htaccess

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

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

Переадресация на HTTPS версию сайта

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


RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]

Размещать эти строки следует в начале файла выше инструкций для WordPress.

Что еще может файл .htaccess

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

Благодарности

При написании статьи были использованы следующие источники:

  1. https://codex.wordpress.org/htaccess

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

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