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

RHEL Apache не может добавить завершающую косую черту к URL-адресу

Я использую веб-сервер Red Hat Apache (2.4.6). Apache добавляет «/» в конце URL-адреса, если доступ к каталогам осуществляется (поведение по умолчанию) через http 301. Я хочу избежать http 301 веб-сервером Apache при доступе к каталогам. Итак, я сделал это.

<Directory /var/www/html>
 Options Indexes FollowSymLinks MultiViews
 AllowOverride all
 DirectorySlash Off
</Directory>

Я заметил, что DirectorSlash Off остановил Apache от автоматического добавления "/" в каталоги в URL-адресе.

Я добавил ниже в конце httpd.conf, но это не действует. Я не вижу, как ниже добавляется "/" в каталог в URL-адресе. Правила перезаписи не работают. Любая идея, что не так.

RewriteEngine on
RewriteCond %{REQUEST_URI} !(.+)/$
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.+)$ $1/ [P]

Заранее спасибо.

На основании ваших комментариев:

У меня есть сервер, на котором установлен сторонний продукт. Назовем его server1, который действует как обратный прокси. server1.com отправляет запросы на следующий веб-сервер Apache. Назовем его server2. Если в конце нет косой черты, например server1.com/apple, запрос, как обычно, поступает на server2, и server2 выдает http 301 в браузере, то есть server2.com/apple. Я не хочу, чтобы это произошло, потому что server2 не доступен напрямую в браузере, поэтому поток прерывается. Вот почему я отключил «DirectorySlash» на Server2 и хочу использовать RewriteRules.

Проблема НЕ в вашей конфигурации Apache на server2.

И это тоже не то место, где вы должны пытаться это исправить.

Проблема в том, что обратный прокси настроен неправильно. Обратный прокси-сервер должен распознавать заголовки перенаправления, отправляемые внутренними серверами, и перезаписывать их в URI, используемом внешним обратным прокси-сервером.

На обратном прокси-сервере Apache, который выполняется ProxyPassReverse директива.

На nginx это обычно происходит правильно, но когда внутренний сервер использует URI в заголовках перенаправления, которые не совпадают с тем, который используется в proxy_pass определение, которое вам нужно настроить с помощью proxy_redirect директива.

Другие обратные прокси будут иметь аналогичные возможности. ...