1

Мне нужно перенаправить subdomain.example.com -> subdomain.example.com:32400/web

Мой текущий htaccess:

Options -MultiViews +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^subdomain.example.com [NC]
RewriteRule (.*) http://subdomain.example.com:32400/web [R=301,L]

AuthUserFile /var/.htpasswd
AuthName Welcome
AuthType Basic

require user someone

IndexOptions +ShowForbidden
ErrorDocument 401 /error401.html
ErrorDocument 404 /errorGeneric.html
ErrorDocument 500 /errorGeneric.html

Однако я продолжаю получать 500 внутренних ошибок сервера с включенным перенаправлением, если перенаправление не активно, то .htaccess работает нормально

3 ответа3

0

Вы пробовали директиву RewriteLog , с RewriteLogLevel что-то выше 0?

Возможно, у вас есть тупик переписывания; какой сервис работает на порте 32400?

Изменить: Доступность RewriteLog зависит от версии Apache; для Apache 2.4+ правила ведения журнала LogLevel переписывают протоколирование (см. документацию LogLevel), например, LogLevel rewrite:trace4

0

Если ваши документы об ошибках должны обслуживаться Apache, а не процессом внутреннего сервера (который обслуживает порт 32400), вам нужно защитить их от перезаписи; например:

RewriteCond !^/error(401|Generic).html

перед вашим RewriteRule (вы можете связать от 1 до n условий, которые должны быть выполнены для выполнения следующего RewriteRule ).

0

Для простых случаев вам не нужно использовать mod_rewrite . Вместо этого может быть достаточно использовать mod_proxy ; что-то вроде:

ProxyPass / http://subdomain.example.com:32400/web
ProxyPassReverse / http://subdomain.example.com:32400/web 

(Непроверенные)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .