Мне нужно перенаправить в папки с порта 80 на 8080 1. Индекс по умолчанию в / somename 2. / admin в / somename
Я попробовал .htaccess к
RewriteEngine on
Redirect / http://example.com:8080/somename
Redirect /admin http://example.com:8080/someAdmin
Но я использую JSP, поэтому имя папки, которое я использовал, - это someAdmin (обратите внимание на заглавные буквы). Мне невозможно изменить путь в моем коде (извините)
Проблема Поэтому из-за этого я получаю перенаправление страницы с ошибкой (CASE sEnSiTive) (автоматически преобразуется в маленький регистр в браузере)
Добавить Я буду рад, если .htaccess сможет замаскировать порт 8080 от пользователя через обратный прокси.
RewriteEngine on
RewriteCond %{SERVER_PORT} !^8080$
RewriteRule ^(.*) http://%{SERVER_NAME}:8080/somefolder%{REQUEST_URI}
Redirect /admin http://%{SERVER_NAME}:8080/someAdmin
Это странно, что Redirect
ведет себя вот так. У меня сейчас нет подходящего экземпляра Apache, чтобы убедиться, что mod_alias должен вести себя подобным образом, но если он не будет учитывать регистр в целевом местоположении, я полагаю, просто используйте mod_rewrite, поскольку вы все равно загружаете его:
RewriteBase /
RewriteRule ^$ http://example.com:8080/somename [R,L]
RewriteRule ^admin$ http://example.com:8080/someAdmin [R,L]
Для обратного прокси, похоже, вы хотите использовать прокси вместо перенаправления, а не в дополнение к нему?
Для того, что вам нужно, ProxyPass
будет работать нормально, но с .htaccess не очень хорошо. Если у вас есть возможность, не настраивайте это в .htaccess, используйте ProxyPass
вместо. Если вы этого не сделаете, то mod_rewrite поможет:
RewriteBase /
RewriteRule ^admin(.*)$ http://example.com:8080/someAdmin$1 [R,L]
RewriteRule ^(.*)$ http://example.com:8080/somename/$1 [R,L]