HTTP Заголовки
Правила для HTTP заголовков позволяют добавлять, изменять или удалять заголовки в HTTP ответах. Используется для безопасности, кэширования и SEO.
Зачем нужны заголовки
Заголовок раздела «Зачем нужны заголовки»| Цель | Примеры заголовков |
|---|---|
| Безопасность | X-Frame-Options, CSP, HSTS |
| Кэширование | Cache-Control, ETag |
| SEO | X-Robots-Tag |
| CORS | Access-Control-Allow-Origin |
| Производительность | X-Content-Type-Options |
Pre-configured заголовки
Заголовок раздела «Pre-configured заголовки»ONREZA автоматически добавляет ряд security заголовков ко всем ответам:
| Заголовок | Значение | Назначение |
|---|---|---|
X-Content-Type-Options | nosniff | Предотвращает MIME sniffing |
X-Frame-Options | DENY | Защита от clickjacking |
Referrer-Policy | strict-origin-when-cross-origin | Контроль Referrer |
Strict-Transport-Security | max-age=31536000; includeSubDomains | HTTPS only |
X-Robots-Tag | index, follow | Разрешение индексации |
Добавление заголовков
Заголовок раздела «Добавление заголовков»- Откройте Project → Settings → Routing Rules
- Переключитесь на вкладку Headers
- Нажмите Add Header
- Заполните:
- Pattern: путь (например,
/*или/api/*) - Header Name: имя заголовка
- Header Value: значение заголовка
- Pattern: путь (например,
- Сохраните
Распространённые сценарии
Заголовок раздела «Распространённые сценарии»Content Security Policy
Заголовок раздела «Content Security Policy»| Pattern | Header | Value |
|---|---|---|
/* | Content-Security-Policy | default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; |
Кэширование static assets
Заголовок раздела «Кэширование static assets»| Pattern | Header | Value |
|---|---|---|
/_astro/* | Cache-Control | public, max-age=31536000, immutable |
/assets/* | Cache-Control | public, max-age=31536000, immutable |
CORS для API
Заголовок раздела «CORS для API»| Pattern | Header | Value |
|---|---|---|
/api/* | Access-Control-Allow-Origin | https://mydomain.com |
/api/* | Access-Control-Allow-Credentials | true |
/api/* | Access-Control-Allow-Methods | GET, POST, PUT, DELETE, OPTIONS |
/api/* | Access-Control-Allow-Headers | Content-Type, Authorization |
Блокировка индексации
Заголовок раздела «Блокировка индексации»| Pattern | Header | Value |
|---|---|---|
/admin/* | X-Robots-Tag | noindex, nofollow |
/draft/* | X-Robots-Tag | noindex, nofollow |
Приоритет заголовков
Заголовок раздела «Приоритет заголовков»При конфликте заголовков применяется более специфичный pattern:
/* → Cache-Control: public/api/* → Cache-Control: no-cache (применится для /api/)Удаление заголовков
Заголовок раздела «Удаление заголовков»- Project → Settings → Routing Rules → Headers
- Найдите правило
- Нажмите Delete
Заголовки в astro.config.mjs
Заголовок раздела «Заголовки в astro.config.mjs»Astro-проекты могут задавать заголовки через конфигурацию (только dev mode):
export default defineConfig({ server: { headers: { 'X-Custom-Header': 'value', }, },});Проверка заголовков
Заголовок раздела «Проверка заголовков»Проверьте заголовки через браузер (DevTools → Network → выберите запрос → Headers) или утилиту curl:
curl -I https://myproject-workspace.onreza.appTroubleshooting
Заголовок раздела «Troubleshooting»Заголовок не применяется
Заголовок раздела «Заголовок не применяется»- Проверьте что pattern соответствует запрашиваемому пути
- Проверьте что нет конфликтующего правила с более высоким приоритетом
- Дождитесь применения изменений (до 30 секунд)
HSTS не работает
Заголовок раздела «HSTS не работает»Заголовок Strict-Transport-Security применяется только для HTTPS запросов. Убедитесь что:
- Сайт доступен по HTTPS
- Нет mixed content
См. также
Заголовок раздела «См. также»- Routing Rules — общая документация
- Redirects — перенаправления
- Rewrites — переписывание путей
- MDN: HTTP Headers — справка по заголовкам