Created
May 2, 2023 23:51
-
-
Save aktaumag/ed8e224e6e2f76c97744c308fa8431db to your computer and use it in GitHub Desktop.
Заметки для настроек сервера, .htaccess, php, js
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Заметки для настроек сервера, .htaccess, php, js |
Переадресация двойных финальных слэшей на одинарный финальный слэш в .htaccess
Был уверен, что сработает это правило, но оно не сработало для Beget
RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} \/\/$
RewriteRule ^(.*)\/\/$ https://wseo.pw/$1/ [R=301,L]
# такое окончание тоже не сработало
# RewriteCond %{REQUEST_URI} (.+)//$
# RewriteRule ^ %1/ [L,R=301]
Запросил помощи в техподдержке Beget и они сделали такое правило
RewriteEngine On
RewriteCond %{REQUEST_URI} ^(.*?)\/{2,}(.*?)$
RewriteRule . %1/%2 [L,R=301]
RewriteCond %{THE_REQUEST} //
RewriteRule .* /$0 [R=301,L]
Оно создавало двойной редирект... в итоге переделал на нижеуказанное и пропадали как финальные, так и внутренние слэши
RewriteCond %{REQUEST_URI} !\?
RewriteCond %{REQUEST_URI} !\&
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{THE_REQUEST} //
RewriteRule ^(.*)$ https://wseo.pw/$1 [R=301,L]
с WWW на БЕЗ-WWW
# Перенаправление на БЕЗ WWW и сразу на HTTPS, по примеру техподдержки TimeWeb
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ https://wseo.pw/$1 [R=301,L]
с БЕЗ-WWW на WWW
# Перенаправление на WWW и сразу на HTTPS, которое сдела сама техподдержка TimeWeb
RewriteCond %{HTTP_HOST} !^www\.(.*) [NC]
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]
На HTTPS
Для TimeWeb
RewriteCond %{HTTP:X-HTTPS} !1
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
Для Beget
RewriteCond %{HTTP:X-Forwarded-Proto} !=https
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
Ещё вариант
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Для удаления index.php
для главной и прочих страниц
RewriteCond %{THE_REQUEST} ^.*/index.php [NC]
RewriteCond %{REQUEST_URI} !^/bitrix/admin/ [NC]
RewriteRule ^(.*)index.php$ https://wseo.pw/$1 [R=301,L]
HSTS заголовок настраивается в .htaccess
Header set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" env=HTTPS
Полезные ссылки:
Тестировщик
https://htaccess.madewithlove.com/
Примеры основных ситуаций
https://web-optimizator.com/301-redirekt-htaccess/
Проверка цепочек переадресаций:
https://www.websiteplanet.com/ru/webtools/redirected/
Проверка кода ответа и заголовков:
https://bertal.ru/
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Переадресация без слэша на финальный слэш в .htaccess
Для исключения из переадресации админки битрикса использовать
RewriteCond %{REQUEST_URI} !^/bitrix/admin/