Чтобы опубликовать некоторые файлы онтологий, я хочу добавить перенаправления на w3id.org , который является просто HTTP-сервером Apache, который можно настроить с помощью .htaccess
файлов в общедоступном репозитории GitHub .
Поскольку я совсем не знаком с сервером Apache и перенаправлениями HTTP, я попытался запустить w3id
в локальном контейнере Docker.Поэтому я следовал инструкции на httpd
изображении Docker и создал Dockerfile
, содержащий:
FROM httpd:2.4
COPY ./public-html/ /usr/local/apache2/htdocs/
Конечно, я заменил ./public-html/
путем к моему локальномуw3id
файлы репозитория.
Я использовал приведенные ниже команды для построения и запуска контейнера:
$ docker build -t w3id.org .
$ docker run -dit --name w3id.org -p 8080:80 w3id.org
После этого я могу успешно получить доступ к конечной точке на localhost:8080
, которая предоставляет простой HTMLцелевая страница проекта w3id
.
Однако, если я попытаюсь получить доступ, например, к localhost:8080/security
, я не буду перенаправлен каким-либо образом, в отличие от доступа к w3id.org/security
, что указывает на web-payments.org/vocabs/security
, как и предполагалось.Вместо этого запрос предоставляет обзор всех файлов в определенном каталоге security
, который, по-видимому, является поведением по умолчанию для всех запросов.
Пример файла .htaccess
в каталоге security
содержит:
Header set Access-Control-Allow-Origin *
Header set Access-Control-Allow-Headers DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified$
Options +FollowSymLinks
RewriteEngine on
RewriteRule ^$ https://web-payments.org/vocabs/security [R=302,L]
RewriteRule ^v1$ https://web-payments.org/contexts/security-v1.jsonld [R=302,L]
RewriteRule ^v2$ https://web-payments.org/contexts/security-v2.jsonld [R=302,L]
Это вызвано моим Dockerfile
или тем, как я запускаю контейнер?Нужно ли включать перенаправления в Apache?Или может быть вызвано отсутствием HTTPS в моей локальной настройке?
Как я могу локально настроить и проверить внешние перенаправления в .htaccess
файлах?