.htaccess редирект слеш в конце url


Anamnado
815

очередная просьба помочь с настройкой .htaccess

в интернете примеров полно но не знаю как их встроить в мою конфигурацию

и так независимо от того как я делаю перелинковку в индекс попадают страницы и со слешем на конце и без

site.ru/catalog

site.ru/catalog/

я определился будут делать урлы со слешем на конце и в связи с этим нужна соответствующая настройка в .htaccess (нужен редирект на урлы со слешем на конце..)

вот моя уже имеющаяся конфигурация, которая все хорошо работает

куда что вставить??

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www.
RewriteRule (.*) https://site.ru/$1 [L,R=301]
RewriteCond %{REQUEST_URI} !^/robots.txt$
RewriteCond %{REQUEST_URI} !^/sitemap.xml$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php
RewriteRule ^content/(.*)$ index.php
RewriteCond %{REQUEST_METHOD} ^TRACE
RewriteRule .* — [F]
</IfModule>

// куда не пробую советы из интернета сувать —

типа вот такие строки добавляю (в разные места пробовал вставлять и разные вариации)

RewriteBase /
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*[^/])$ $1/ [L,R=301]

белиберда получается 🙁


богоносец

Сделали бы сначала rel=canonical на избранный вами вариант… подождали бы долго, а потом 301.

А иначе – сначала выпадет из индекса неправильный вариант… а впадёт ли обратно правильный?.. если ещё на доры не растащило.


Anamnado

богоносец:
А иначе – сначала выпадет из индекса неправильный вариант

я все новые страницы прогоняю через вебмастер-переобход и гугл консоль — робот быстро переобходит и они сидят в индексе уверенно (как основные — вроде проблем нет) — а вот спустя какое то время начинается шалтай болтай с дублями — войдет-выйдет войдет выйдет ( на старых сайтах эта игра была со слешем на конце) вот сейчас делаю новый сайт — началась игра вход выход без слеша на конце

оно напрягает конечно видеть это вот «туда сюда» — но .. основная . суть иная -«вес не терять»

а идея сanonical кстати тоже вариант ….


Sitealert

Anamnado:
белиберда получается

В чём состоит «белиберда»?


Anamnado

Sitealert, что то типа

— раз выдал при загрузке главной site.ru/index.php (такого урл у меня нет)

— второй раз site.ru/раздел/раздел/index.php (тоже на 404 ушло )

если найдется желающий повозиться помочь (спешки нет) я могу все здесь визуализировать (на сателите…ссылку дать).

править и смотреть чо будет…. — суть — надож знать чо править ….


Sitealert

Anamnado:
Sitealert, что то типа
— раз выдал при загрузке главной site.ru/index.php (такого урл у меня нет)
— второй раз site.ru/раздел/раздел/index.php (тоже на 404 ушло )

Ну естественно, там же написано

RewriteRule ^(.*)$ index.php
RewriteRule ^content/(.*)$ index.php


Anamnado

Sitealert, да написано — но при этом все работает хорошо! (да он все отправляет на index.php но делает это как то хитро что сам index.php не видно он просто обрабатывает url (ну в зависимости того что там и выдает контент ) не коверкая его (урл ) ни капли)

(мне эту настройку тоже помогали составлять. я не сам — вот и не шарю ….. )


Sitealert

Anamnado:
Sitealert, да написано — но при этом все работает хорошо!

На сарае тоже написано…(С) Читай, что я написал.

Anamnado:
мне эту настройку тоже помогали составлять

Гони таких помощников.

Anamnado:
я не сам — вот и не шарю ….. )

Пора бы научиться, если на этом зарабатываешь.


Anamnado

Sitealert, вот эту строку знаю

^content/(.*)$ index.php

у меня там контент хранится (в файлах) и если ее не будет контент можно выудить напрямую минуя шаблон

( то есть создает исключение условию RewriteCond %{REQUEST_FILENAME} !-f )

Sitealert:
Читай, что я написал.

Sitealert, читай не читай

конфигурация опубликована и два сайта на ней в подписи! (а делаю я чуть иное пока на сателите тестю обкатываю)

Пора бы научиться, если на этом зарабатываешь

вот и учусь

а до этого 9 лет эти записи не модицифицировал!

учиться тому чего не делать ведь тоже глупо …


Sitealert

Короче, после строки

RewriteRule (.*) https://site.ru/$1 [L,R=301]

вставь строки

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*[^/])$ /$1/ [L,R=301]


ziliboba0213

Зачем трогать то, что работает? Оставьте то, что уже проиндексировано, на это и сделайте редирект. Тогда и танцы с бубном не нужны будут, ИМХО 🙂

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *