Основной курс по Joomla
0 Пользователей и 1 Гость просматривают эту тему.
  • 3 Ответов
  • 320 Просмотров
*

IlyaSh_87

  • Новичок
  • *
  • 7
  • 0
Здравствуйте. Собственно сабж.
Переход по http://имя_сайта/media

Или:
http://имя_сайта/media/k2/attachments/несуществующее вложение
http://имя_сайта/media/k2/items/cache/несуществующая картинка

и т.п.
Вызывают медиаменеджер, если авторизованы во вронтэнде или форму авторизации, если не авторизованы.
Кто убирал?

Пока что я ни чего лучше не придумал, чем запретить страницу авторизации (редирект с кодом 403)
*

draff

  • Практически профи
  • *******
  • 2747
  • 170
  • step by step
А закрыть папку К2 с помощью .htaccess ?
А регистрация зачем на сайте ?
*

IlyaSh_87

  • Новичок
  • *
  • 7
  • 0
А регистрация зачем на сайте ?
регистрация на сайте выключена, но на форму авторизации все равно перебрасывает с кодом 303 (при попытке получить несуществующее вложение):
/component/users/?view=login

Если  я  авторизован, то попадаю сразу в директорию images (без редиректов)


Так как мне авторизация в фронтэнде все-равно не нужна, я ее просто закрыл:

Код
RewriteCond %{REQUEST_URI} !administrator
RewriteCond %{QUERY_STRING} option=com_users [OR]
RewriteCond %{REQUEST_URI} /component/users
RewriteRule .* index.php [F]

Я не совсем понимаю что надо закрыть, что бы не было запроса к медиаменеджеру.
*

IlyaSh_87

  • Новичок
  • *
  • 7
  • 0
Вот так запилил:
Код
RewriteCond %{REQUEST_URI} !administrator
RewriteCond %{QUERY_STRING} option=com_k2
RewriteCond %{QUERY_STRING} view=media
RewriteRule .* index.php [F]

RewriteCond %{REQUEST_URI} /media(/.*|\W?)$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* index.php [F]

лучше ни чего не придумал =(.
Кратко поясню почему так.
Первая часть: Если фронтенд, то запрещаем любой переход по адресу вида: http://имя_домена/index.php?option=com_k2&view=media (то есть по любому, который передает в GET параметры option и media в любом порядке).
Вторая часть: запрещаем переход по любому адресу, который содержит в себе:
http://имя_домена/media
http://имя_домена/media/
http://имя_домена/media/часть_адреса
http://имя_домена/часть_адреса/media/часть_адреса
http://имя_домена/часть_адреса/media/
http://имя_домена/часть_адреса/media
Но разрешаем переход для:
http://имя_домена/часть_адреса/medialibrary/часть_адреса
http://имя_домена/часть_адреса/media/путь_к_существующему_файлу_на_сервере

Работает как надо (нет ненужной переадресации на форму авторизации, на которую попадали, например, с поисковика или сайта, ссылающегося на уже несуществующее вложение, а так же запрет для любителей перебирать адрес в адресной строке). Быть может лучше на 404 отправлять? Хотелось бы услышать мнения.
« Последнее редактирование: 03.09.2016, 03:29:03 от IlyaSh_87 »