Назад | Перейти на главную страницу

Почему моя директива Apache LocationMatch не работает?

Мне нужна помощь в получении апача LocationMatch работать.

Я пытаюсь настроить сервер cobbler, и по умолчанию он требует SSL. Я хочу переписать, чтобы люди могли использовать http: // сервер / cobbler_web вместо этого, а также https: // сервер / cobbler_web, и они попадут на одну страницу. Я пытаюсь использовать LocationMatch соответствовать cobbler_web в URL-адресе, например:

### Force SSL only on the WebUI
<VirtualHost *:80>
    <LocationMatch "^/cobbler_web/">
       RewriteEngine on
       RewriteRule ^(.*) https://%{SERVER_NAME}/%{REQUEST_URI} [R,L]
   </LocationMatch>
</VirtualHost>

но что бы я ни пробовал в строке LocationMatch, ничего не работает. Я пробовал строку, которую вы видите выше, а также .*cobbler_web.*, и ^/cobbler_web/.*, среди других. Никакой радости.

Если я удалю LocationMatch полностью, это работает.

Спасибо.

Если вы все равно включаете механизм перезаписи, просто используйте его, чтобы сопоставить местоположение:

   RewriteRule ^/cobbler_web/ https://%{SERVER_NAME}/%{REQUEST_URI} [R,L]

Не уверен, почему эта конфигурация не работает, но в этом простом случае старый добрый <Location "/cobbler_web/"> должно хватить.