Задать вопрос
@JonMongol

Перенаправление с sait.ru/ на sait.ru/index.shtml Как сделать?

Стандартная задача в htaccess убрать index.html или index.php из URL. Но у меня противовположная задача.
На сайте есть два десятка каталогов (подкаталогов). В каждом index.shtml Все эти страницы в поиске. Все внутренние ссылки идут именно на эти страницы. Но в нескольких каталогах в поиск влетели URL без страницы, просто оканчиваемые на / типа https://sait.ru/katalog/ А URL https://sait.ru/katalog/index.shtml в поисковой базе Яндекса помечена как "DUPLICATE", хотя на странице в тэге

Прошу помочь. Самому составить редирект - знаний не хватает и времени.
  • Вопрос задан
  • 42 просмотра
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 2
@dodo512
RewriteEngine On

RewriteRule ^katalog/$ https://sait.ru/katalog/index.shtml  [R=301,L]


RewriteEngine On

RewriteRule ^$ https://sait.ru/index.shtml  [R=301,L]

RewriteRule ^(.+)/$ https://sait.ru/$1/index.shtml [R=301,L]
Ответ написан
@66demon666
Сетевой админ, АТС-админ
А воспользоваться ИИ чего не хватает? Мозгов? Cyka вам лучшие умы человечества дали такой инструмент, просто вбей в машину запрос, получишь разжеваный ответ, но походу уровень IQ будет снижаться пропорционально росту IQ у ИИ.... Ладно еще когда гуглить ленились, но это...
DeepSeek

Для решения вашей задачи, когда нужно, чтобы URL с / в конце (например, https://sait.ru/katalog/) перенаправлялись на соответствующий index.shtml (например, https://sait.ru/katalog/index.shtml), можно использовать директиву RewriteRule в файле .htaccess. Это поможет избежать дублирования страниц в поисковой выдаче.

Вот пример кода для .htaccess, который будет перенаправлять запросы с / на index.shtml:

RewriteEngine On

# Проверяем, что запрос оканчивается на / и не является директорией
RewriteCond %{REQUEST_FILENAME} -d
RewriteCond %{REQUEST_URI} ^(.+)/$
# Перенаправляем на index.shtml внутри этой директории
RewriteRule ^(.+)/$ $1/index.shtml [L]

Объяснение:
RewriteEngine On — включает механизм перезаписи URL.

RewriteCond %{REQUEST_FILENAME} -d — проверяет, что запрошенный путь является директорией.

RewriteCond %{REQUEST_URI} ^(.+)/$ — проверяет, что URL оканчивается на /.

RewriteRule ^(.+)/$ $1/index.shtml [L] — перенаправляет запрос на index.shtml внутри этой директории. Флаг [L] означает, что это последнее правило, которое должно быть применено.

Важные моменты:
Убедитесь, что файл .htaccess находится в корне вашего сайта.

Если у вас уже есть другие правила в .htaccess, добавьте этот код в начало, чтобы он не конфликтовал с существующими правилами.

После внесения изменений проверьте, что перенаправления работают корректно, открыв в браузере URL с / в конце.

Этот подход поможет вам избежать дублирования страниц в поисковой выдаче и улучшит SEO вашего сайта.

Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы