Drupal htaccess

mbaev 19.10.2016, 16:36

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

  1. С "www" на "без www"

    1. RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
    2. RewriteRule ^ http%{ENV:protossl}://%1%{REQUEST_URI} [L,R=301]
  2. С "без www" на "www"

    1. RewriteCond %{HTTP_HOST} .
    2. RewriteCond %{HTTP_HOST} !^www\. [NC]
    3. RewriteRule ^ http%{ENV:protossl}://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
  3. На https
    Сначала находим и комментируем строки, чтобы выглядело так

    1. #  RewriteRule ^ - [E=protossl]
    2. #  RewriteCond %{HTTPS} on
    3.   RewriteRule ^ - [E=protossl:s]
    затем добавляем
    1. RewriteCond %{HTTPS} off
    2. RewriteCond %{HTTP:X-Forwarded-Proto} !https

    Для корректной работы сайта необходимо также добавить строки в settings.php, который по умолчанию находится в sites/default/settings.php разделяет сессии на "безопасную", если пользователь просматривает сайт по протоколу https, и "не безопасную" в ином случае.

    1. $conf['https'] = TRUE;

    Это нужно для того, чтобы Друпал создавал ссылки с протоколом https. В Drupal 8 этот параметр удалён.

Profile picture for user KosHta

Van'Denis , ,

Хороший, краткий холодный обзор.

Новичку будет смерть от него... Ничего не запустится :)

Разбавь немного примерами в стиле:

  1. # Various rewrite rules.
  2. <IfModule mod_rewrite.c>
  3.   RewriteEngine on
  4.   RewriteCond %{HTTP_HOST} ^radionete.com
  5.   RewriteRule (.*) http://www.radionete.com/$1 [R=301,L]
Profile picture for user KosHta

Гость , ,

Полезная информация, но как применить её?

Это нужно для того, чтобы Друпал создавал ссылки с протоколом https.

А сейчас он какие создаёт?

Profile picture for user mbaev

mbaev , ,

Предположим пользователь пришел по протоколу http (не прописаны редиректы на https). В D6, даже в этом случае ссылки создавались с протоколом https.
Сейчас этот параметр только разделяет сессии на "безопасную" и "небезопасную". В D8 этот параметр удалён.

Profile picture for user KosHta

Константин , ,

Сорри, я подумал меня сайт признал, то ли я невнимателен, то ли имя-почта на второй коммент выходит.