Alfinnov

Рейтинг
123
Регистрация
07.01.2010

Мде, я уже не знаю как проще объяснить задачу ...

есть проксирующий скрипт, он лежит в корне сайта. его задача - пришедший на него запрос - выкачать с удаленного сервера и отдать клиенту.

он складываешь данные для кеша в папку:

./site.{адрес сайта}/ <--- тут лежат файлы удаленного сайта.

в коре ./ - лежат файлы, доступа к которым на прямую быть не должно, это организовывается сейчас так, что все запросы идут через /index.php который уже подставляет данные из ./site.{адрес сайта}/... и отдает клиенту.

цель:

написать htaccess , так что-бы:

1. если запрашиваемый файл существует (но в папке) ./site.{адрес сайта}/ - отдать его (это касается только статичных рессурсов jpg/png/gif/css/js)

2. если файла в папке нет, то запрос должен идти на /index.php

я уже не знаю как проще можно что-то описать. это же только другими словами и примерами было во всех моих сообщениях

// а вот это не работает:

RewriteCond %{QUERY_STRING} ^$

RewriteRule ^wp-content/images/.+\.(css|js|jpe?g|mp4|gif)$ /site.%{HTTP_HOST}/$0 [L]

---------- Добавлено 24.08.2019 в 12:22 ----------

так-же я что-то не понимаю, почему даже такое:

RewriteCond %{REQUEST_URI} \.(jpg)$

RewriteRule ^(.*)$ ./www.vasaya.ru/wp-content/images/484/2605s.jpg [L]

вызывает 500 ошибку что в этом то простом не верно может быть?

---------- Добавлено 24.08.2019 в 12:38 ----------

А правила вида:

RewriteCond %{QUERY_STRING} ^$

RewriteCond %{REQUEST_URI} \.(css|js|jpe?g|mp4|gif) [NC]

RewriteCond /www.%{HTTP_HOST}%{REQUEST_URI} -f

RewriteRule ^/(.*)$ /www.%{HTTP_HOST}/$0 [R=302,L,END]

приводят вообще вот к такой переадресации (после 20 переходов)

Адрес: http://www.vasya.ru/www.www.vasya.ru/www.www.vasya.ru/www.www.vasya.ru/www.www.vasya.ru/www.www.vasya.ru/www.www.vasya.ru/www.www.vasya.ru/www.www.vasya.ru/www.www.vasya.ru/www.www.vasya.ru/www.www.vasya.ru/www.www.vasya.ru/www.www.vasya.ru/www.www.vasya.ru/www.www.vasya.ru/www.www.vasya.ru/www.www.vasya.ru/www.www.vasya.ru/www.www.vasya.ru/www.www.vasya.ru/www.www.vasya.ru/pages/images/484/2605s.jpg [переход]

тут возникает проблемма, что файлы из корня будут доступны по прямому запросу, а не должны, для остальных всех редирект на index.php

у картинок итд может в конце идти знак вопроса и параметры, а может и не идти

правило что-то вроде:

RewriteCond %{REQUEST_URI} \.(jpe?g|bmp|png|gif|)$

RewriteCond %{DOCUMENT_ROOT}www.%{HTTP_HOST}$1 -F

RewriteRule ^(.*) %{DOCUMENT_ROOT}www.%{HTTP_HOST}$1 [L]

логика должна быть такая:

если в запросе jpg итд ( http://vasha.ru/wp-content/image/111.jpg)

если файл по новой ссылке существует ( ./site.vasha.ru/wp-content/image/111.jpg)

то отдать файл ./vasha.ru/wp-content/image/111.jpg

Вообще у меня совсем не wp

с 503 с хостером разбираемся, но хз сколько займет, да и по плану должны быть дешевые хостинги

---------- Добавлено 23.08.2019 в 23:29 ----------

SeVlad:
ОМГ..

не то слово, но к сожалению вы ответили совсем не по "теме", не разобравшись в вопросе

Что-то у меня вроде как не работает ... давайте я по конретнее попробую ...

логика:

идут запросы на хост:

http://www.veslo.ru/wp-content/images/12323.jpg

http://www.veslo.ru/wp-content/images/12323.jpg

http://www.veslo.ru/wp-content/images/12323.css

http://www.veslo.ru/wp-content/images/12323.html

http://www.veslo.ru/wp-content/images/12323.js

http://www.veslo.ru/wp-content/images/12323.js?a=edede&as=sd12

http://www.veslo.ru/wp-content/images/12323.htm

http://www.veslo.ru/wp-content/images/12323.jpeg

http://www.veslo.ru/wp-content/images/12323.mp4

http://www.veslo.ru/wp-content/images/12323.gif

http://www.veslo.ru/wp-content/images/12323.gif?231ad23

надо, для всех файлов jpg,css,js,jpeg,mp4,gif проверить есть ли файл:

./site.www.veslo.ru/{путь до файла jpg/css/js/jpeg/mp4/gif}

и если файл есть (по адресу выше) отдать его

пример:

идет запрос:

http://www.veslo.ru/wp-content/images/12323.gif?231ad23

проверяется, есть ли на хостинге файл:

./site.www.veslo.ru/wp-content/images/12323.gif?231ad23

и если есть - отдает его, если файла нет, запрос передается в ./index.php который уже с ним разбирается

еще момент, запрос может идти не только на http://www.veslo.ru, но и на http://veslo.ru - считаем что это разные папки для хранения рессурсов:

./site.www.veslo.ru и ./site.veslo.ru - соответственно

// такого рода проксирование надо не для всех файлов, грубо проверяем и отдаем только статичные рессурсы (js/css/jpg итд). остальные файлы должны запрашиваться через index.php

Ага, благодарю.

тут будет проблема как я понимаю, что когда файла там нет, он попробует его открыть - и получит 404

там просто если файла нет, должно на index.php идти и файл подкачает и выведет

Мне вот интересно, а как вы аффилиат фильт диагностируете вообще? я про яндекс/гугл если уведомлений нет о санкциях

какая симптоматика приводит к диагнозу?

foxi:
Alfinnov, а если по ip зайти, ваш сайт отображается? Может вам на сайт приклеили какой нибудь проституточный сайт. Или конкуренты с левого домена поставили редирект домена на ваш. И соответственно яндекс по урлам с того сайта на ваш редиректит.
Но в таких ситуациях ничего страшного, 404 код есть и норм.

у нас vps, на ip заглушка пустая

на моем сайте нет, всё проверил

то есть редиректы не ставить, не парится?

но вопрос остается - откуда оно? так поздно берется вообще

Всего: 200