Я использую веб-сервер 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
директива.
Другие обратные прокси будут иметь аналогичные возможности. ...