Редирект с index.php

Всем привет!

Как сделать редирект?
— site.ru/index.php -> site.ru/
— site.ru/#section/index.php -> site.ru/
— site.ru/page/index.php -> site.ru/page/

С первым я разобрался, а вот по остальным решения не нашёл.
Никита Боднар
13 декабря 2022, 11:30
modx.pro
180
0

Комментарии: 5

Артур Шевченко
13 декабря 2022, 23:36
0
Если у тебя apache попробуй это
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.(php|html|htm)\ HTTP/
RewriteRule ^(.*)index\.(php|html|htm)$ $1 [R=301,L]
    Никита Боднар
    14 декабря 2022, 10:34
    0
    > site.ru/index.php -> site.ru/
    Только этот вариант работает в таком случае
    Sergey
    16 декабря 2022, 22:31
    0
    Что-то вроде этого
    RewriteEngine On
    RewriteRule ^index\.php$ / [R=301,L]
    RewriteRule ^(.*)/index\.php$ /$1/ [R=301,L]
    уберет index.php в конце любого урла.

    Далее останется убрать /#section/ Это можно простым 301 редиректом, например,
    Redirect 301 /#section/ https://antirealtor.moscow
    Или наоборот, сначала редиректить site.ru/#section/index.php -> site.ru/, потом дописать про index.php, знатоки htaccess пусть поправят

    И обратите внимание на этот слэш в конце — site.ru/ — он огорчит вашего сеошника, т. к.он там не нужен абсолютно
      Никита Боднар
      16 декабря 2022, 22:46
      0
      #section в качестве примера указан, если что, там может быть вообще любой якорь
        Руслан Алеев
        17 декабря 2022, 23:16
        0
        Здравствуйте, вообще странно, что якорь индексируется, по логике не должен.
        Но в целом, вам стоит прогуглить правила .htaccess, например, (.*) — это любое кол-во знаков.

        И, наверное, для любого якоря подойдет такая запись (тут не уверен, но суть примерно та):
        Redirect 301 /#(.*) https://antirealtor.moscow
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      5