Правила htaccess на все случаи жизни

При создании сайтов мы часто сталкиваемся с задачами SEO оптимизации, такими как — 301 редиректы, необходимостью убрать www в адресе или наоборот добавить www в адрес, при этом не сломав индексацию сайта. И многие другие примеры, в которых нам поможет настройка htaccess файла. 

Несколько советов перед тем, как перейдем к разбору правил htaccess

  • Первым делом идут более частные переадресации (например, ели у статьи сменился адрес и нужно указать поисковику на это), затем более глобальные (с www на без www).
  • Избегайте множественных переадресаций, это пагубно влияет как на время загрузки сайта, так и на индексацию. С недавних пор поисковики начали смотреть и на этот фактор.
  • После вставки правил в htaccess — ваш браузер может кэшировать прошлое, поэтому сбрасывайте его либо пользуйтесь сторонними сервисами для проверки переадресаций.

Правила переадресаций

1. 301 редирект с одной страницы на другую

Иногда нам необходимо указать поисковой системе о сменившемся url страницы, делается это так:

С регулярными выражениями:

2. 301 редирект с без www на www (главное зеркало – домен с www)

3. 301 редирект с www на без www (главное зеркало – домен без www)

 4. Убираем слэш в конце url через 301 редирект

5. Добавляем слэш в конце url через 301 редирект (часто в CMS системах устанавливается автоматически)

6. Один 301 редирект на без www и с слешем на конце адреса страницы.

Полезно, чтобы не создавать 2 редиректа

7. Один 301 редирект на c www и со слешем на конце адреса страницы

8. Один 301 редирект на c www и без слеша на конце адреса страницы

9. Один 301 редирект на без www и без слеша на конце адреса страницы

10. 301 редирект только адреса site.ru/index.php (без GET параметров) на основное зеркало site.ru

11. 301 редирект всех адресов с index.php и GET параметрами на страницы только с GET параметрами (вырезать в url index.php)

Пример: типа site.ru/index.php?n=1 на site.ru/?n=1

12. 301 редирект url с GET параметрами (динамический URL) на статический

1 вариант (простой адрес с GET параметром)

2 вариант (со страницы и GET параметром)

13. Все страницы одного домена на главную страницу другого домена

14. Каждая страница одного домена на такой же адрес другого url

15. С алиаса на основной домен

16. Каждая страницы алиаса на такой же адрес основного сайта

17. Редирект с протокола http на https.

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

18. Редирект протокола https на http.