Этот сайт работает PHP на IIS 7.5, а доступ к сайту ограничен Активной группой каталогов через web.config следующим образом:Разрешить анонимный доступ к определенным URL в web.config
<security>
<authorization>
<remove users="*" roles="" verbs="" />
<add accessType="Allow" roles="DOMAIN\AD-GROUP" />
</authorization>
</security>
Единственное переписывание URL-адресов заключается в том, чтобы отправить большинство URL-адресов на index.php
, а CodeIgniter обрабатывает маршрутизацию после этого.
Однако существует определенный шаблон URL, который должен быть подвергнут воздействию пользователей, не входящих в данную группу Active Directory. Это не файл, который, я считаю, используется для тега <location>
; он должен быть основан на URL-адресе.
Дополнительный контекст: это шаблон URL в одной странице/приложении AngularJS. Пример: в приложении для управления проектами пользователи приложения могут создавать задачи, загружать файлы, отправлять заметки (например, http://domain/#/project/1234/tasks). Все эти пользователи находятся в группе AD-GROUP
. Для каждого проекта есть титульная страница для проекта, которая может быть выдана не пользователям в организации (http://domain/#/project/1234/public). Они не будут в этой конкретной группе AD, но им нужно просмотреть эту страницу.
Можно ли это сделать в web.config, учитывая, что он основан на хеше в URL-адресе? Если нет, то какой альтернативный способ ограничения на основе группы AD, если не web.config?
Я не смог заставить это работать. Любая попытка поместить регулярное выражение в качестве пути приводит к ошибке о недопустимых символах. –
@ MelissaAvery-Weir, да, это не предназначено для работы с дорожкой, подобранной RegExp. Если вы не можете поместить фиксированный префикс в свои URL-адреса, я думаю, что следующим простейшим решением является установка [URL Rewrite module] (https://www.iis.net/downloads/microsoft/url-rewrite) и использование его для сопоставьте все ваши URLS с префикс-физической папкой и настройте 'location' для этой папки. – SergGr
Все входящие URL-адреса сопоставляются с файлом 'index.php' уже для CodeIgniter для управления маршрутизацией. Дальнейшие исследования предполагают, что это еще менее возможно, чем я надеялся: URL-адрес, который нуждается в исключении безопасности, находится в хэш-части URL-адреса (для AngularJS). Я даже не думаю, что хеши делают это на сервере; вы не можете переписывать URL-адреса на них. –