Drupal htaccess

Опубликовал Максим Баев, 19 октября 2016, 17:36

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

  1. С www на без www

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

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

    #  RewriteRule ^ - [E=protossl]
    #  RewriteCond %{HTTPS} on
    RewriteRule ^ - [E=protossl:s]
    

    затем добавляем

    RewriteCond %{HTTPS} off
    RewriteCond %{HTTP:X-Forwarded-Proto} !https
    

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

    <?php
    $conf['https'] = TRUE;
    

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

Другие посты