Email or username:

Password:

Forgot your password?
Wallace Wells

Народ, а кто-нибудь сталкивался с таким поведением nginx?

Я запретил доступ для папки .git с помощью следующего правила:

location ~ /\.git {
return 404;
}

И столкнулся с тем, что по адресу <site>/.git действительно выпалала 404-я ошибка.

А вот если набрать напрямую, скажем, <site>/.git/logs/HEAD или <site>/.git/config, то браузер совершенно спокойно скачивал файлы гита.

Вроде бы, решил проблему, добавлением прямого запрета:

location /.git { return 404; }

И теперь всё содержимое папки .git не скачивается. Но это же я только папку в корне защитил. А если у меня ещё какие появятся?

UPD:
Проблема решилась расширением регулярки до ~ /\.git.*. lol

5 comments
Григорий Клюшников

Так ~ это же регулярка. Наверное, весь путь с ней матчится целиком

Wallace Wells

@grishka регулярка, да.

кажется, нашёл решение: ~ /\.git.* — нужно было совпадение по любому количеству символов после .git добавить.

Григорий Клюшников

Wallace, ага, вот что-то такое. Мне больше нравится ~ /\.git(/.*)?, потому что иначе это "что угодно, что начинается с /.git", а так только "файлы внутри .git"

Wallace Wells

@grishka да, так лучше.

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

Григорий Клюшников

Wallace, очень советую https://regex101.com для написания и тестирования регулярок

Go Up