Назад | Перейти на главную страницу

Постоянное перенаправление или RedirectMatch, что лучше для обеспечения безопасности SSL в Apache?

Я использовал:

RedirectMatch /(.*) https://www.website.com/$1

для принудительного перенаправления с виртуального хоста 80 на 443 в apache.

Я считаю, что имеет смысл захватить все, что пользователь вставляет, и напрямую перевести на https. Тем не менее, я также видел, что это используется довольно часто:

Redirect permanent / https://www.website.com/

Который я не использовал, потому что предполагаю, что это не будет точным переводом адреса, введенного пользователем, на https.

Какой из них лучше всего для принудительного шифрования всего сайта вместе с использованием строгой транспортной безопасности?

Либо Redirect, либо RedirectMatch может быть 301 или 302, в зависимости от того, как вы его вызываете, так что это не разница между ними.

РАЗЛИЧИЯ И ЗНАЧЕНИЕ:

В разница в том, что Redirect соответствует только простому URL-PATH, а RedirectMatch позволяет использовать сопоставление с образцом регулярного выражения.

Кроме того, 301 - это постоянный перенаправить, а 302 - это временный перенаправить.

В ПОИСКАХ ГОДОТА

Чтобы сохранить рейтинг в поисковых системах, вы всегда должны использовать 301 редирект. В идеале для SEO вам нужна согласованность протокола и полного доменного имени, поэтому это выходит далеко за рамки простого обеспечения SSL / TLS.

Допустим, ваш "полный" URL для вашей домашней страницы:

https://www.example.com/index.php

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

https://www.example.com/index.php
https://www.example.com/index
https://www.example.com/
https://example.com/index.php
https://example.com/index
https://example.com/
http://www.example.com/index.php
http://www.example.com/index
http://www.example.com/
http://example.com/index.php
http://example.com/index
http://example.com/

Но даже если ваш сервер может думать, что все они одинаковы, и обслуживаемый контент идентичен, Google считает их все уникальными URL, и когда они определят, что эти 12 URL содержат дублированный контент, вы будете оштрафованы в рейтинге поиска.

И недостаточно просто убедиться, что все ваши внутренние ссылки указаны в качестве предпочтительного URL-адреса - какой-нибудь фанат вашего сайта, несомненно, опубликует ссылку и напишет ссылку как http://example.com когда ты предпочитаешь https://www.example.com так что вам нужно, чтобы Google знал, что http://example.com следует интерпретировать так, как вы предпочитаете, и способ сделать это - ПОСТОЯННЫЕ перенаправления.

Теперь вы можете сделать Redirect или RedirectMatch постоянный (301) просто добавив 301 в строку:

Redirect 301 /here/ https:www.example.com/there/
RedirectMatch 301 /here/(.*) https:www.example.com/there/$1

Также для постоянного перенаправления эти варианты:

Redirect 301
Redirect Permanent
RedirectPermanent

все означают одно и то же.

РОЗА - это не роза, это не роза, это не роза

Я даже не касался концевых слэшей и чувствительности к регистру в каталогах или параметрах, но это тоже имеет значение. Единственный раз, когда Google не заботится о регистре или конце косой черты, - это корневой домен.

Все они идентичны Google:

www.MyFunDomain.com/
www.MyFunDomain.com
www.myfundomain.com/
www.myfundomain.com
WWW.MyFuNdOmAiN.COM

Это потому, что спецификация для доменные имена нечувствителен к регистру. Но эти:

example.com/MyPath/
example.com/MyPath
example.com/mypath/
example.com/mypath
example.com/mYpAtH

Все считаются РАЗНЫЕ даже если ваша система или сервер считает их одинаковыми. Хотя завершающие косые черты не требуются в TLD, они ОБЯЗАТЕЛЬНЫ для всех путей. le.com/mypath/ подразумевает le.com/mypath/index.html и le.com/mypath подразумевает le.com/mypath.html.

ЛУЧШИЕ ПРАКТИКИ

Решение этого:

1) Сделайте стандарт дома, чтобы все пути и имена файлов были в нижнем регистре ТОЛЬКО.

2) Настройте правила перезаписи, чтобы сделать постоянное перенаправление 301 для всех вариантов схемы, поддомена, косой черты в конце пути и расширения файла.

Потому что возможности практически безграничны, и Redirect требует путей с учетом регистра, RedirectMatch или Rewrite являются лучшим выбором, так что все возможные варианты:

https://www.example.com/sitepath/

точно так же показывается сканерам Google, а не

http://example.com/SitePath/index.php

Я не собираюсь публиковать конкретный пример правила перезаписи, потому что существует слишком много переменных (включая проблемы HSTS) и способов создания проблем. Вместо этого я отсылаю вас к Дэна Морелла довольно отличные уроки для НЕ HSTS места и отдельный ссылка на сайт для HSTS места.

В Redirect будет точный перевод. Как написано Redirect является предпочтительным, потому что он отправляет код состояния HTTP 302, тогда как RedirectMatch отправляет 301.