После того, как Apache настроит обратный прокси, домашняя страница по умолчанию станет недействительной

Моя серверная среда - Apache, версия - Apache / 2.4.18 (Ubuntu)

Файл конфигурации сайта выглядит следующим образом:

<VirtualHost *:80>
    DirectoryIndex index.html index.php

    RewriteEngine on
    RewriteCond %{DOCUMENT_ROOT}/$1 -f [OR]
    RewriteCond %{DOCUMENT_ROOT}/$1 -d
    RewriteRule (.*) - [END]
    # Else proxy
    RewriteRule ^/(.*)$ http://127.0.0.1:60000/$1 [P,QSA]
    ProxyPassReverse / http://127.0.0.1:60000/
    ProxyPreserveHost On
</VirtualHost>

Когда я обращаюсь к каталогу только с файлом index.php, это будет обратный прокси , Не разбирал index.php

Если я изменю DirectoryIndex на index.php index.html, проблема будет решена, но указанная выше проблема возникнет в index.html.

И когда я удаляю обратный прокси-сервер, index.php и index.html будут нормальными и на них не повлияет порядок.

Таким образом, проблема может заключаться в следующем: Apache распознает только первый DirectoryIndex, когда существует обратный прокси-сервер, и, если он не существует, он будет реверсировать прокси вместо того, чтобы пытаться использовать домашнюю страницу по умолчанию за ним.

Я надеюсь, что домашняя страница по умолчанию и обратный прокси могут мирно сосуществовать. Как с этим бороться?

Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
0
0
351
1

Ответы 1

После нескольких исследований я попробовал другие способы выполнения своей функции.

<VirtualHost *:80>
    DirectoryIndex index.html

    RewriteEngine on
    #
    RewriteCond %{DOCUMENT_ROOT}/$1 -d
    RewriteCond %{DOCUMENT_ROOT}/$1/index.php -f
    RewriteRule ^/(.*)/$ /$1/index.php [P,END]
    #
    RewriteCond %{DOCUMENT_ROOT}/$1 -f [OR]
    RewriteCond %{DOCUMENT_ROOT}/$1 -d
    RewriteRule (.*) - [END]
    # Else proxy
    RewriteRule ^/(.*)$ http://127.0.0.1:60000/$1 [P,QSA]
    ProxyPassReverse / http://127.0.0.1:60000/
    ProxyPreserveHost On
</VirtualHost>

Как и в случае с приведенной выше конфигурацией, я сохраняю только домашнюю страницу по умолчанию и использую метод обратного прокси для отображения других домашних страниц по умолчанию.

Но очевидно, что это не обязательно лучший способ, я надеюсь, что партнеры с лучшими способами могут сообщить

Другие вопросы по теме