2017-04-17 100 views
1

socket.io電話我不深的Apache配置使 後++小時的谷歌和實驗,並開始緊張起來,我需要幫助concering是所有請求我使用端口80的「站點名稱」始終以重定向到node.js socket.io服務器腳本結束。apache httpd的-vhosts.conf誰重定向只能從端口80

從瀏覽器我請求爲index.htm應做socket.io東西。

如何配置httpd-vhosts.conf允許使用端口80調用php/js/html/..(除ind​​ex.htm)「site-name」不被重定向到node.js?

(XAMPP)的Apache/2.4.25(Win32的)的OpenSSL/1.0.2j PHP/30年6月5日

的httpd-vhosts.conf看起來像這樣

<VirtualHost *:80> 
ServerName site-name 

RewriteEngine On 
RewriteCond %{REQUEST_URI} ^/socket.io   [NC] 
RewriteCond %{QUERY_STRING} transport=websocket [NC] 
RewriteRule /(.*)   ws://localhost:8088/$1 [P,L] 

ProxyPass   http://localhost:8088/ 
ProxyPassReverse   http://localhost:8088/ 

</VirtualHost> 

的index.htm:

<!DOCTYPE html> 
<html> 
    <head> 
     <meta charset="utf-8" /> 
     <title>Socket.io</title> 
    </head> 

    <body> 
     <h1>Communication with socket.io!</h1> 

     <script src="http://site-name/socket.io/socket.io.js"></script>  <script> 
var socket = io(); 
console.log("socketId: " + socket.id); 

socket.on('news', function (data) { 
console.log(data); 
socket.emit('my other event', { my: 'client-data' }); 
}); 

感謝的對你有所幫助 圭多

回答

0

我已找到解決方案,只需添加

# no proxy for php cgi-bin 

ProxyPass   /php ! 

ProxyPass   /cgi-bin !