TLDR: я ищу способ обслуживания веб-ресурсов (css, jpg и т. Д.) Из файловой системы , которая сохраняет тип mime.
Я создаю оболочку phpкоторый проверяет пользователя из другого домена (с помощью одноразового токена), создает сеанс и затем обслуживает файлы, несколько веб-сайтов в отдельных каталогах, в другом доступном каталоге для этого пользователя.
У меня есть, так чтодалеко, использовал php для обработки проверки и mod_rewrite для перенаправления всех запросов на что-либо внутри каталога через оболочку, добавляющую запрошенную страницу как get.
Проблема в том, что когда я открываю веб-страницу, которая ссылается на другие ресурсыон проходит через оболочку для каждого ресурса и не сохраняет MIME-тип.В результате форматирование облажается.
У кого-нибудь есть обходной путь или лучший способ обслужить файлы из файловой системы через скрипт php.
Вот мойПравила перенаправления:
<Directory /var/www/ssl/auth>
RewriteEngine On
RewriteBase /auth
RewriteRule ^(.*) /wrapper.php?topage=https://%{SERVER_NAME}/auth/$1
</Directory>
И это включает в себя: (после проверки, что файл существует)
$path = 'https://'.$_SERVER['SERVER_NAME'].'/';
$abs_path=substr($_GET['topage'], strlen($path));
include ($abs_path);
Вот ошибки, которые я получаю (используя инструменты dev наchrome)
Resource interpreted as Stylesheet but transfered with MIME type text/html
Я создаю это, чтобы пользователи Apple в моей школе могли публиковать классные веб-сайты (используя iweb и размещенные внутри), которые требуют аутентификации и могут быть доступны без входа в систему дважды при наличии ссылки с главного веб-сайта школы(размещен снаружи).
Костюмы непреклонны в том, что они хотят, чтобы он настраивался на домены.Если у вас есть какие-либо предложения по этой конкретной проблеме или как добиться авторизации.через домены, дайте мне знать.
Решение
Tandu.Спасибо за помощь в использовании изложенных вами концепций, я смог использовать переполнение стека для решения моей проблемы, вот решение.Я <и нашел, как получить тип MIME, а затем передал его, используя <code>header(), работает как заклинание.
$path = $proto.$_SERVER['SERVER_NAME'].'/';
$abs_path=substr($_GET['topage'], strlen($path));
$type = (get_object_vars(apache_lookup_uri("$abs_path")));
header('Content-type: '.$type['content_type']);
readfile($abs_path);
Надеюсь, это поможет кому-то в дальнейшем.