Апачитег для пары вариантов

Апачитег для пары вариантов

Я хочу задать несколько Locationтегов в моей конфигурации Apache. Например: /image, /file, /audioи передать его в localhost:port/path. Сейчас я использую это для /image:

 <Location /image>
        RewriteEngine  on
        Options +MultiViews +FollowSymLinks
        AllowOverride All
        ProxyPreserveHost On
        ProxyPass "http://localhost:PORT/image"
        ProxyPassReverse "http://localhost:PORT/image"
    </Location>

Мне нужно писать этот кусок кода для каждого параметра? Или есть какой-то способ сократить это?

Спасибо!

решение1

<Location /image>
   RewriteEngine  on
   Options +MultiViews +FollowSymLinks
   AllowOverride All
   ProxyPreserveHost On
   ProxyPass "http://localhost:PORT/image"
   ProxyPassReverse "http://localhost:PORT/image"
</Location>

Нужно ли мне писать этот фрагмент кода для каждого параметра?

Нет. RewriteEngineДиректива ничего не делает там, и ни директивы , Optionsни AllowOverrideдирективы не имеют смысла, если вы не сопоставляете ресурсы в локальной файловой системе. Эти опции контролируются и должны быть установлены "удалённым" веб-сервером, на который вы пересылаете запросы с помощью директивы ProxyPass.

Поскольку эти директивы бесполезны, то вам не нужна скобка Location, чтобы задать их, и вы можете использовать встроенныйProxyPassсинтаксис, который рекомендуется в любом случае.

Это сокращает ваш синтаксис до только необходимых строк:

ProxyPreserveHost On

ProxyPass "/image" "http://localhost:PORT/image"
ProxyPassReverse "/image" "http://localhost:PORT/image"

ProxyPass "/file" "http://localhost:PORT/file"
ProxyPassReverse "/file" "http://localhost:PORT/file"

Apache httpd действительно предлагаетIncludeдиректива для сохранения единого фрагмента конфигурации с настройками, которые вы хотите включить дословно в разных местах, блоках VirtualHost, Location, Directory, не копируя одни и те же строки раз за разом.

Связанный контент