# ContentZavod Proxy - Плагин для WordPress

## Описание

Плагин для WordPress, который проксирует запросы с префиксом `/contentzavod` на сайт `https://fittin.ru`. При обращении к URL вида `https://ваш-сайт.ru/contentzavod/путь`, плагин получает HTML-страницу с `https://fittin.ru/contentzavod/путь` и возвращает её с обработанными ссылками.

## Возможности

- ✅ Проксирование HTTP-запросов на внешний источник
- ✅ Автоматическая обработка относительных ссылок в HTML
- ✅ Поддержка изображений, CSS, JavaScript и других ресурсов
- ✅ Обработка адаптивных изображений (srcset)
- ✅ Обработка inline стилей с url()
- ✅ Автоматическая настройка правил перезаписи URL

## Установка

### Способ 1: Через админ-панель WordPress

1. Скачайте файл `contentzavod-proxy.php`
2. Войдите в админ-панель WordPress
3. Перейдите в раздел **Плагины → Добавить новый**
4. Нажмите **Загрузить плагин**
5. Выберите файл `contentzavod-proxy.php`
6. Нажмите **Установить**
7. Активируйте плагин

### Способ 2: Ручная установка

1. Создайте папку `contentzavod-proxy` в директории `/wp-content/plugins/`
2. Скопируйте файл `contentzavod-proxy.php` в созданную папку
3. Войдите в админ-панель WordPress
4. Перейдите в раздел **Плагины**
5. Найдите плагин **ContentZavod Proxy** и активируйте его

## Использование

После активации плагина все URL с префиксом `/contentzavod/` будут автоматически проксироваться на `https://fittin.ru/contentzavod/`.

### Примеры

**Запрос:**

```
https://ваш-сайт.ru/contentzavod/view/razrabotka-mobilnyh-prilozheniy-pod-klyuch-kak-novye-tehnologii-optimizatsii-gpu-menyayut-it
```

**Будет проксирован на:**

```
https://fittin.ru/contentzavod/view/razrabotka-mobilnyh-prilozheniy-pod-klyuch-kak-novye-tehnologii-optimizatsii-gpu-menyayut-it
```

## Техническая информация

### Архитектура

Плагин состоит из одного класса `ContentZavod_Proxy`, который:

1. **Регистрирует правила перезаписи URL** - перехватывает все запросы с префиксом `/contentzavod/`
2. **Проксирует запросы** - отправляет HTTP-запрос на целевой сервер
3. **Обрабатывает HTML** - заменяет относительные ссылки на абсолютные

### Обработка ссылок

Плагин обрабатывает следующие типы ссылок:

- **href** - ссылки в тегах `<a>`, `<link>`
- **src** - изображения, скрипты, iframe
- **srcset** - адаптивные изображения
- **url()** - ссылки в CSS (inline стили)

### Константы

```php
private const SOURCE_URL = 'https://fittin.ru';  // URL источника
private const URL_PREFIX = 'contentzavod';        // Префикс для перехвата
```

### Хуки WordPress

Плагин использует следующие хуки:

- `init` - добавление правил перезаписи URL
- `template_redirect` - обработка проксированных запросов
- `query_vars` - добавление переменных запроса
- `register_activation_hook` - активация плагина
- `register_deactivation_hook` - деактивация плагина

## Безопасность

Плагин включает базовые меры безопасности:

- Защита от прямого доступа к файлу
- Использование встроенных функций WordPress для HTTP-запросов
- SSL-верификация при запросах
- Проверка кодов ответа HTTP

## Производительность

- ⚠️ Плагин не использует кэширование (по требованию)
- Каждый запрос выполняется в реальном времени
- Таймаут запроса: 30 секунд

## Ограничения

1. Не кэширует полученный контент
2. Захардкожен URL источника (fittin.ru)
3. Не имеет административного интерфейса
4. Не поддерживает POST-запросы (только GET)

## Возможные улучшения

- [ ] Добавить административную панель для настройки URL источника
- [ ] Реализовать кэширование контента
- [ ] Добавить поддержку POST-запросов
- [ ] Логирование ошибок
- [ ] Настройка таймаутов
- [ ] Whitelist/blacklist для определенных путей

## Требования

- WordPress 5.0 или выше
- PHP 7.0 или выше
- Активированная функция `wp_remote_get()`

## Деактивация и удаление

При деактивации плагина:

- Автоматически удаляются правила перезаписи URL
- Запросы к `/contentzavod/` перестают обрабатываться

При удалении плагина:

- Удалите папку `/wp-content/plugins/contentzavod-proxy/`

## Поддержка

При возникновении проблем:

1. Проверьте, активирован ли плагин
2. Перейдите в **Настройки → Постоянные ссылки** и нажмите **Сохранить** (это обновит правила перезаписи)
3. Проверьте логи ошибок WordPress
4. Убедитесь, что сервер может выполнять внешние HTTP-запросы

## Лицензия

GPL v2 or later

## Автор

Создано для проксирования контента с fittin.ru

## Версия

1.0.0 - Первый релиз

