Добрый день! Нужна помощь! Не могу настроить переадресацию на адрес без /.
то есть
https://site.ru отдает код 200ок
https://site.ru/ тоже отдает код 200ок
в файле htaccess сделал правки
RewriteCond %{REQUEST_URI} !\&
RewriteCond %{REQUEST_URI} !\=
RewriteCond %{REQUEST_URI} !\.
RewriteCond %{REQUEST_URI} ![^\/]$
RewriteRule ^(.*)\/$ https://%{HTTP_HOST}/$1 [R=301,L]
И все осталось по прежнему, но путь
https://site.ru/article отдает 200ок
https://site.ru/article/ отдает 301ок
Как нужно! Но проблема осталась с названием сайта по прежнему
https://site.ru отдает код 200ок
https://site.ru/ тоже отдает код 200ок
В чем может быть проблема? И где формируется путь сайта? Я предполагаю где ни будь в скриптах. Спасибо
Комментарии
Ну вот вы и настроили переадресацию на адрес без /
301 - moved permanently, всё ок.
Ну почему адрес https://site.ru/ не переадресуется на https://site.ru
Это получаются тогда дубли! Или я не прав?
Почему вы считаете, что не переадресуется?
В адресной строке браузера url меняется на без слеша на конце?
Меняется, но ответ сервера
https://site.ru 200ок
https://site.ru/ 200ок
По моему пониманию должно быть
https://site.ru 200ок
https://site.ru/ 301ок
Правильно я понимаю?
Только на главной нет переадресации?
А как смотрите коды ответа? Можете показать полностью заголовки ответа для адресов со слешем и без?
HTTP/1.1 200 OK
Server: nginx/1.12.2
Date: Tue, 01 Feb 2022 13:46:28 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
X-Powered-By: PHP/7.3.33
Cache-Control: max-age=43200, public
X-Drupal-Dynamic-Cache: MISS
Link: <https://centrklinik.ru/>; rel="canonical", <https://centrklinik.ru/>; rel="shortlink"
X-UA-Compatible: IE=edge
Content-language: ru
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Vary: Cookie
X-Generator: Drupal 8 (https://www.drupal.org)
X-Drupal-Cache: HIT
Strict-Transport-Security: max-age=31536000;
Link: <https://centrklinik.ru/>; rel="canonical", <https://centrklinik.ru/>; rel="shortlink"
Вот обращение к внутренней:
curl -IL -A "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:59.0) Gecko/20100101 Firefox/59.0" https://centrklinik.ru/lechenie-narkomanii/
HTTP/1.1 301 Moved Permanently
Server: nginx/1.12.2
Date: Tue, 01 Feb 2022 13:56:29 GMT
Content-Type: text/html; charset=iso-8859-1
Connection: keep-alive
X-Content-Type-Options: nosniff
Location: https://centrklinik.ru/lechenie-narkomanii
Cache-Control: max-age=1209600
Expires: Tue, 15 Feb 2022 13:56:29 GMT
Strict-Transport-Security: max-age=31536000;
HTTP/1.1 200 OK
Server: nginx/1.12.2
Date: Tue, 01 Feb 2022 13:56:29 GMT
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
X-Powered-By: PHP/7.3.33
Cache-Control: max-age=43200, public
X-Drupal-Dynamic-Cache: MISS
Link: <https://centrklinik.ru/lechenie-narkomanii>; rel="canonical", <https://centrklinik.ru/lechenie-narkomanii>; rel="revision"
X-UA-Compatible: IE=edge
Content-language: ru
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
Expires: Sun, 19 Nov 1978 05:00:00 GMT
Vary: Cookie
X-Generator: Drupal 8 (https://www.drupal.org)
X-Drupal-Cache: HIT
Strict-Transport-Security: max-age=31536000;
Вот что мне ответил хостер
"При обращении к сайту, по всей видимости, сначала отрабатывают скрипты сайта, а только затем правила .htaccess. Об этом свидетильствует строка Link"
"Для главной страницы настройка правила перенаправления делается внутри конфигурации сайта"
"При обращении к внутренней странице 301 перенаправление отрабатывает корректно. В браузере "/" тоже убирается."
Попробуйте заменить свое правило на
RewriteRule ^(.*)/$ /$1 [R=301,L]
Сейчас под рукой нет апача, не могу сам проверить.
Или установите Redirect, он умеет убирать конечные слеши
Не помогает
В форме настроек /admin/config/search/redirect/settings надо включить чекбокс "Enforce clean and canonical URLs.", судя по описанию Enabling this will automatically redirect to the canonical URL of any page. That includes redirecting to an alias if existing, removing trailing slashes, ensure the language prefix is set and similar clean-up. - это то, что требуется.
Что то из предложенного ничего не работает. Еще вопрос в настройках сайта у меня главная страница установлена как https://site.ru/node, а где (в каком месте в php, модуле)происходит переадресация на страницу https://site.ru/? Может тут проблема?