Редирект с index.html на контейнер

Сегодня, в процессе общения с wget выяснилось, что он добавляет index.html для контейнеров MODX.

То есть, адрес sitename.ru/section/, а этот товарищ качает sitename.ru/section/index.html, получая в ответ заслуженный 404 not found.

Решаем как обычно, просто добавляя правила в Nginx:
location /index.html {
	rewrite         / / permanent;
}

location ~ ^\/(.*?)\/index\.html$ {
	rewrite	^(.*/)index.html http://$host$1 permanent;
}
Первое правило редиректит /index.html из корня, а второе — index.html из всех контейнеров.

Таким образом, все запросы к индексным файлам будут направляться на родителя:
http://sitename.ru/index.html -> http://sitename.ru/
http://sitename.ru/section/index.html -> http://sitename.ru/section/
http://sitename.ru/section/topic/index.html -> http://sitename.ru/section/topic/
СЕОшникам должно понравиться.
Василий Наумкин
03 марта 2013, 04:44
modx.pro
4 980
0

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

Богдан
03 марта 2013, 10:11
0
Для Apache можно добавить в .htaccess:
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^/]+/)*index\.(htm(l)?|php)\ HTTP/
RewriteRule ^(([^/]+/)*)index\.(htm(l)?|php)$ http://mysitename\.com/$1 [R=301,L]
Эффект тот же.
    Василий Наумкин
    03 марта 2013, 11:17
    0
    index.php лучше убрать, иначе /manager/index.php зациклит и ты не сможешь войти в админку.
      Богдан
      03 марта 2013, 16:47
      0
      Да вроде работает пока… Выхожу и вхожу в админку нормально.
    Aleks
    07 августа 2013, 00:19
    0
    Если запросить адрес
    http://modx.pro/help/index.html
    то перенаправляет на
    http://bezumkin.ru/sections/
    Аналогично и с другими страницами вложенностью больше двух. Всегда перенаправляет на второй уровень.
    Долго искал решение для правильного редиректа, но так и не нашел.
      Aleks
      07 августа 2013, 00:36
      0
      Вот пару часов потратил чтобы разобраться, а через пять минут после публикации тут своего сообщения, нашел вариант редиректа:
      rewrite ^(.*/)index.html http://$host$1 permanent;
      Проверил пока на одном сайте. Работает.
        Василий Наумкин
        07 августа 2013, 05:44
        0
        Спасибо, так лучше.

        Добавил в топик.
          Aleks
          07 августа 2013, 15:38
          0
          Есть один нюанс. Если на сервере есть папка с лежащим в ней файлом index.html, то при обращении к ней мы получим циклическую переадресацию.
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      7