Отправка заголовков ответа сервера через htaccess в Apache
В некоторых ситуациях требуется отправить дополнительные заголовки ответа сервера. Например, в php это можно сделать так..
1 2 3 4 |
<?php header('Access-Control-Allow-Origin: https://it-rem.ru'); |
Но, как быть, если это не какой-то скрипт, а статический файл? Конечно можно написать правило mod_rewrite и завернуть все на скрипт, например так
1 2 3 4 |
RewriteEngine On RewriteRule ^lang.properties$ add-header.php?file=$0 [L] |
а затем в файле, add-header.php
1 2 3 4 5 6 7 |
<?php if (isset($_GET['file']) && file_exists($_GET['file'])) { header('Access-Control-Allow-Origin: https://it-rem.ru'); readfile($_GET['file']); } |
Но есть и другое решение, которое мне нравится больше, это модуль для apache, который называется mod_headers
Устанавливается он так
1 2 3 4 5 6 7 |
# Активируем модуль sudo a2enmod headers # Перезапускаем Apache sudo systemctl restart apache2 |
Теперь можно в папке с файлом создать .htaccess с такой записью:
1 2 3 4 5 6 7 |
<IfModule mod_headers.c> <Files "lang.properties"> Header add Access-Control-Allow-Origin "https://it-rem.ru" </Files> </IfModule> |
ну или тоже самое, но по маске файла описанной в регулярном выражении
1 2 3 4 5 6 7 |
<IfModule mod_headers.c> <Files ~ "\.properties$"> Header add Access-Control-Allow-Origin "https://it-rem.ru" </Files> </IfModule> |
или так
1 2 3 4 5 6 7 |
<IfModule mod_headers.c> <FilesMatch "\.properties$"> Header add Access-Control-Allow-Origin "https://it-rem.ru" </FilesMatch> </IfModule> |
Про разницу между Files и FilesMatch можно прочитать в официальной документации тут: Files, FilesMatch
В результате, например, в Developers Tools (Инструментах разработчика), в браузере, мы может увидеть дополнительный заголовок
Как видите использовать mod_headers намного проще и удобнее, чем писать mod_rewrite и перенаправлять на скрипт.
Author: | Tags: /
| Rating:
Leave a Reply