При начальной настройке сайта важно учесть все технические составляющие, особенно наличие корректных файлов htaccess и robots.txt. Первывм делом выполним настройку файл htaccess под CMS WordPress, т.к. он регулирует серверные настройки веб-сервера Apache. В статье описаны правильные и рабочие настройки с минимальным количеством редиректов! Следуйте этой инструкции, чтобы не делать грубых ошибок.
Стандартный htaccess
Если 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
301 редирект на https
Если к ресурсу привязан SSL сертификат, то нужно указать после #BEGIN WordPress
настройку на 301 редиректа.
RewriteEngine On RewriteCond %{HTTP:X-Forwarded-Proto} !https RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Как должен выглядеть правильный htaccess
В итоге правильный код htaccess должен выглядеть так:
# BEGIN WordPress RewriteEngine On RewriteCond %{HTTP:X-Forwarded-Proto} !https RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] <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
Данные настройки проверены на множестве сайтов и работают безотказно. Указанные параметры убирают дубли страниц, закрывают дыры в безопасности и спасают от остальных типовых ошибок.
Этого достаточно для работы веб ресурса на вордпресс, единственный правильный htaccess. В других статьях интернета прописаны множество бесполезных директив, например для безопасности, кеширования и закрытия индексации. Они были написаны давно, и устарели не пользуйтесь их советами.
Редирект с http на https+www с CloudFlare для WordPress
Если сайт уже создан и работает продолжительное время, то базовых (стандартных настроек, указанных выше) может быть недостаточно. При грамотном SEO продвижении сайта, важно:
- использовать только главное зеркало сайта;
- соблюдать минимум редиректов;
- поддерживать высокую скорость работы сайта.
Иногда, особенно у старых ресурсов, главное зеркало сайта выглядит так: www.sitename.ru. Поэтому важно добиться одной корректной переадресации сразу на него. Сейчас рассмотрим более тонкую настройку .htaccess, когда требуется сделать один 301 редирект со всех зеркал при использовании популярного CDN Cloudflare.
Основная особенность в том, что сначала мы делаем перенаправление на www с https, а уже потом, чтобы избежать циклической переадресации при использовании Cloudflare – добавляем перенаправление на безопасное соединение:
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP_HOST} !^www\. RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301] RewriteCond %{HTTP:X-Forwarded-Proto} =http RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] </IfModule>
Итоговый файл .htaccess для редиректа сразу с http без www на https+www+cloudflare:
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP_HOST} !^www\. RewriteRule ^(.*)$ https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301] RewriteCond %{HTTP:X-Forwarded-Proto} =http RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] </IfModule> <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 и корректного SEO продвижения сайта.