megauser Posted May 6 Report Share Posted May 6 (edited) Simpla 2.3.6 Как сделать чтоб главный домен сайта https://site.ru редиректил на https://site.ru/ на сайт со слэшем в конце? и https://site.ru/* на https://site.ru/ https://site.ru/? на https://site.ru/ https://site.ru на https://site.ru/ https://www.site.ru yf https://site.ru/ https://site.ru//// на https://site.ru/ # Редирект с www на без www RewriteCond %{HTTP_HOST} ^www\.(.*)$ RewriteRule ^(.*)$ https://%1/$1 [L,R=301] # Редирект с http на https RewriteCond %{SERVER_PORT} !^443$ RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L] # Добавление слеша в конце URL, если его нет RewriteCond %{REQUEST_URI} !\? RewriteCond %{REQUEST_URI} !\& RewriteCond %{REQUEST_URI} !\= RewriteCond %{REQUEST_URI} !\. RewriteCond %{REQUEST_URI} !\/$ RewriteRule ^(.*[^\/])$ /$1/ [R=301,L] # Редирект с //// на / RewriteCond %{THE_REQUEST} // RewriteRule .* /$0 [R=301,L] Редиректы www и https работают, но без слеша в конце, главная не добавляет слэш, а вот внутренние страницы все ок. Также если добавляю редирект со знака * или ? на без него, то TO MANY REDIRECTS # Редирект для URL с любыми дополнительными путями RewriteCond %{REQUEST_URI} ^/.*$ RewriteRule ^ https://site.ru/ [L,R=301] # Редирект для URL с вопросительным знаком RewriteCond %{QUERY_STRING} ^$ RewriteRule ^$ https://site.ru/ [L,R=301] Проблема именно в редиректах на главной странице. https://site.ru/? на https://site.ru/ На все внутренние страницы каталога без проблем слэш работает, кроме главной и с ? * Edited May 6 by megauser Quote Link to post Share on other sites
Chudo Posted June 6 Report Share Posted June 6 Попробуй такой подход: # Включаем модуль mod_rewrite RewriteEngine On # Редирект с www на без www и с http на https RewriteCond %{HTTP_HOST} ^www\.(.*)$ [OR] RewriteCond %{HTTPS} off RewriteRule ^ https://site.ru%{REQUEST_URI} [R=301,L,NE] # Удаление множественных слешей RewriteCond %{REQUEST_URI} ^(.*)//(.*)$ RewriteRule . %1/%2 [R=301,L] # Добавление слеша в конце URL, если это не файл и нет параметров RewriteCond %{REQUEST_URI} !/$ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{QUERY_STRING} ^$ RewriteRule ^(.*[^/])$ /$1/ [R=301,L] # Нормализация запросов с ? или без параметров RewriteCond %{THE_REQUEST} \s/+\?*\s RewriteRule ^ /? [R=301,L] # Нормализация URL без параметров (удаление знака ?) RewriteCond %{QUERY_STRING} ^$ RewriteRule ^$ / [R=301,L] Quote Link to post Share on other sites
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.