.htaccess 如果从htaccess重写连接,socket.io将停止工作

.htaccess 如果从htaccess重写连接,socket.io将停止工作,.htaccess,websocket,socket.io,.htaccess,Websocket,Socket.io,工作: 我正在处理socket.io,只需隐藏端口号,并将域重定向到域:{port} 我有3个域名,都工作了2年,突然,如果URL来自重写,1个socket.io就会停止接受 服务器1,example1.com/\uuuuuuuuuuuu使用htaccess重写 .htaccess on server_1 RewriteRule ^socket2/(.*)$ ws://example_2.com:3000/$1 [P,QSA,L] #Working RewriteRule ^socket3/(

工作:

我正在处理socket.io,只需隐藏端口号,并将域重定向到域:{port}

我有3个域名,都工作了2年,突然,如果URL来自重写,1个socket.io就会停止接受

服务器1,example1.com/\uuuuuuuuuuuu使用htaccess重写

.htaccess on server_1
RewriteRule ^socket2/(.*)$ ws://example_2.com:3000/$1  [P,QSA,L] #Working
RewriteRule ^socket3/(.*)$ ws://example_3.com:3000/$1  [P,QSA,L] #Not working

# Direct URL Working: ws://example_3.com:3000
在服务器3上,例如_3.com,

如果我输入了完整的URL“ws://example\u 3.com:3000”它可以工作,如果我在server1上写.htaccess重写规则,那么它就不能工作

我在服务器3上的诊断:

  • Socket.io工作100%正常
  • 如果htaccess重写的URL在毫秒后连接并断开套接字连接

我需要帮助找出确切的问题和位置。我只想隐藏端口号并将wss://重写为ws://

这实际上不是一个经典的重写,而是您实现的一个代理。因为这两条规则是相同的,所以在行为上没有区别。唯一可能有不同行为的是这两个服务器示例2和示例3,但这与重写无关。您将需要开始调试:因此,开始,深入到重写服务器和后端服务器的日志文件中,找到关于实际原因的第一个提示。apache日志和套接字日志中没有任何内容,而且我也没有实现任何代理。我想你应该开始阅读你使用的工具的文档了。特别是关于规则中使用的
P
标志的说明。“P”代表“代理”。。。