Форум русскоязычного сообщества Ubuntu


Автор Тема: Редирект для файлов, загружаемых через wget  (Прочитано 2151 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн demkov

  • Автор темы
  • Старожил
  • *
  • Сообщений: 2756
  • Юрист
    • Просмотр профиля
    • Контекстная реклама в MMGP
Сабж.

Были ссылки вида
http://вендекапец.рф/ubuntupage/file/flags/faenza_dark/{ru,us}.svgТеперь все файлы перемещены, действующие ссылки
http://вендекапец.рф/flags/faenza_dark/{ru,us}.svgВопрос: как wget'у при попытке загрузить эти два файла выдавался редирект в другую директорию?
Для вебмастеров: CPC-реклама на MMGP-проектах!

Оффлайн Andrey P

  • Новичок
  • *
  • Сообщений: 39
    • Просмотр профиля
Если man wget не дает ответа, значит никак (с помощью wget).

Но это простой скрипт на любом языке по вкусу:

if exists(url):
  download(url)
else:
  url = substitute(url, old, new)
  download(url)

Оффлайн demkov

  • Автор темы
  • Старожил
  • *
  • Сообщений: 2756
  • Юрист
    • Просмотр профиля
    • Контекстная реклама в MMGP
nextme,
благодарю, но куда мне его деть?

Пользователь решил продолжить мысль 02 Июнь 2013, 14:48:15:
Уточняю: редирект должен работать не только у меня, но у всех, кто применяет Wget на эти файлы
Для вебмастеров: CPC-реклама на MMGP-проектах!

Оффлайн ArcFi

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
forekko, на стороне сервера (apache), можно сделать через
Alias /ubuntupage/file/flags/faenza_dark/ru.svg /var/www/flags/faenza_dark/ru.svg

Оффлайн Andrey P

  • Новичок
  • *
  • Сообщений: 39
    • Просмотр профиля
От... Совсем недопер, что это вопрос (кажется) "со стороны сервера". Тут я не специалист.

Оффлайн demkov

  • Автор темы
  • Старожил
  • *
  • Сообщений: 2756
  • Юрист
    • Просмотр профиля
    • Контекстная реклама в MMGP
nextme,
с вашим скриптом я так и не понял. Что это было
forekko, на стороне сервера (apache), можно сделать через
Alias /ubuntupage/file/flags/faenza_dark/ru.svg /var/www/flags/faenza_dark/ru.svg
Тоже недолго думая засунул в .htaccess, так как это не VPS, а виртуальный хостинг. В логах ошибок сипанели сказали, что Alias not allowed here, я спросил у техподдержки в чём беда, админ посоветовал покурить htaccess :)

Но я же не курю, поэтому старым добрым методом ещё раз попробовал в .htaccess нужного сайта добавить строки:
# редиректы
RedirectPermanent /ubuntupage/file/flags/faenza_dark/ru.svg /flags/faenza_dark/ru.svg
RedirectPermanent /ubuntupage/file/flags/faenza_dark/us.svg /flags/faenza_dark/us.svg

Ура, теперь wget читает .htaccess и даже послушно переходит по редиректу (утром то же самое пробовал, не срабатывало, хз, может, опечатывался везде):
denis@denis-B34:~/Загрузки/_md$ wget http://вендекапец.рф/ubuntupage/file/flags/faenza_dark/{ru,us}.svg
--2013-06-02 17:43:59--  http://xn--80adgdbb7avw5e.xn--p1ai/ubuntupage/file/flags/faenza_dark/ru.svg
Распознаётся вендекапец.рф (xn--80adgdbb7avw5e.xn--p1ai)... 5.9.147.47
Подключение к вендекапец.рф (xn--80adgdbb7avw5e.xn--p1ai)|5.9.147.47|:80... соединение установлено.
HTTP-запрос отправлен. Ожидание ответа... 301 Moved Permanently
Адрес: http://xn--80adgdbb7avw5e.xn--p1ai/flags/faenza_dark/ru.svg [переход]
--2013-06-02 17:44:00--  http://xn--80adgdbb7avw5e.xn--p1ai/flags/faenza_dark/ru.svg
Подключение к вендекапец.рф (xn--80adgdbb7avw5e.xn--p1ai)|5.9.147.47|:80... соединение установлено.
HTTP-запрос отправлен. Ожидание ответа... 200 OK
Длина: 6743 (6,6K) [image/svg+xml]
Сохранение в: «ru.svg»

100%[============================================================================================================>] 6 743       --.-K/s   за 0,04s   

2013-06-02 17:44:00 (165 KB/s) - «ru.svg» сохранён [6743/6743]

--2013-06-02 17:44:00--  http://xn--80adgdbb7avw5e.xn--p1ai/ubuntupage/file/flags/faenza_dark/us.svg
Подключение к вендекапец.рф (xn--80adgdbb7avw5e.xn--p1ai)|5.9.147.47|:80... соединение установлено.
HTTP-запрос отправлен. Ожидание ответа... 301 Moved Permanently
Адрес: http://xn--80adgdbb7avw5e.xn--p1ai/flags/faenza_dark/us.svg [переход]
--2013-06-02 17:44:00--  http://xn--80adgdbb7avw5e.xn--p1ai/flags/faenza_dark/us.svg
Подключение к вендекапец.рф (xn--80adgdbb7avw5e.xn--p1ai)|5.9.147.47|:80... соединение установлено.
HTTP-запрос отправлен. Ожидание ответа... 200 OK
Длина: 8097 (7,9K) [image/svg+xml]
Сохранение в: «us.svg»

100%[============================================================================================================>] 8 097       --.-K/s   за 0,01s   

2013-06-02 17:44:01 (715 KB/s) - «us.svg» сохранён [8097/8097]

ЗАВЕРШЕНО --2013-06-02 17:44:01--
Общее время: 1,4s
Загружено: 2 файлов, 14K в 0,05s (284 KB/s)

Теперь вопрос стоит в том, чтобы пойти дальше. А дальше так, чтобы _любой_ файл в директории редиректился на _такой же_ файл в другой директории. Как?
Нечто вроде:
RedirectPermanent /ubuntupage/file/flags/faenza_dark/(*).svg /flags/faenza_dark/(*).svgКак сделать RedirectPermanent с использованием регулярных выражений?
Для вебмастеров: CPC-реклама на MMGP-проектах!

Оффлайн Andrey P

  • Новичок
  • *
  • Сообщений: 39
    • Просмотр профиля
Цитировать
nextme,
с вашим скриптом я так и не понял. Что это было
:2funny:

Вы сисадмин, а я по ту сторону барьера. Нам друг друга (без поллитры) не понять. )))

Оффлайн demkov

  • Автор темы
  • Старожил
  • *
  • Сообщений: 2756
  • Юрист
    • Просмотр профиля
    • Контекстная реклама в MMGP
Вы сисадмин, а я по ту сторону барьера. Нам друг друга (без поллитры) не понять. )))
Я думаю мой хостер с таким сисадмином уже поллитру допивает

Пользователь решил продолжить мысль 03 Июнь 2013, 09:49:28:
А ещё есть какой-то RedirectMatch, да? Никто ничего не подскажет вроде RedirectPermanent но с регулярными выражениями?

Пользователь решил продолжить мысль 03 Июнь 2013, 22:31:24:
Решение оказалось прислоненным к забору!

У хостера есть cPanel X, которая умеет добавлять именно нужные правила в .htaccess через русифицированный гуи, лол.


Просто поставив нужные галочки и написав, что нам надо, мы получаем нужные записи в .htaccess корня выбранного домена. Я их приведу ниже.
ЗЫ: заполнять поля лучше в punycode (в случае с кириллическими доменами), ибо в противном случае сипанелька гробит кириллицу, перенося её в видимо вин-кодировку. Работает, но не читабельно. — понял, нужно подкрутить gedit. Но тем не менее, если не писать кириллицу, сипанелька оставляет утф8 нетронутым.

Если указать в punycode, то получаем нужные строки (приведено активное, комменты опустил):

RewriteEngine on

RewriteCond %{HTTP_HOST} ^xn--80adgdbb7avw5e.xn--p1ai$
RewriteRule ^ubuntupage\/file\/flags\/mono_light\/?(.*)$ "http\:\/\/xn\-\-80adgdbb7avw5e\.xn\-\-p1ai\/flags\/mono_light\/$1" [R=301,L]

RewriteCond %{HTTP_HOST} ^xn--80adgdbb7avw5e.xn--p1ai$
RewriteRule ^ubuntupage\/file\/flags\/faenza_dark\/?(.*)$ "http\:\/\/xn\-\-80adgdbb7avw5e\.xn\-\-p1ai\/flags\/faenza_dark\/$1" [R=301,L]

Вот так вот, ларчик «просто» открывался. Теперь работает переадресация для всех файлов в данной директории из одного каталога в другой с сохранением имени файла. Проверил и в браузере и через wget, замечательно работает.

В этих директивах можно сломать не только мозг....
« Последнее редактирование: 03 Июнь 2013, 22:34:11 от forekko »
Для вебмастеров: CPC-реклама на MMGP-проектах!

 

Страница сгенерирована за 0.067 секунд. Запросов: 24.