htaccess 重定向到端口

htaccess 重定向到端口

我需要重定向 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 可以正常工作

答案1

对于简单的情况,您不需要使用mod_rewrite。使用可能就足够了mod_proxy相反;类似于:

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

(未经测试)

答案2

您是否尝试过RewriteLog使用RewriteLogLevel上述指令0

您是否可能遇到重写死锁;端口上运行什么服务32400

编辑:的可用性RewriteLog取决于 Apache 版本;对于 Apache 2.4+,LogLevel指令规则也会重写日志记录(请参阅LogLevel 文档),例如LogLevel rewrite:trace4

答案3

如果您的错误文档由 Apache 而不是后端服务器进程(服务于端口 32400)提供,则需要保护它们不被重写;例如:

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

在你之前RewriteRule(你可以链接1n所有条件都需要满足,下列条件RewriteRule才能执行)。

相关内容