我在www.myurl.com:3001上运行了Node.js / Angularjs / Gulp应用程序,我希望有一个“干净”的URL www.myurl.com。所以我想将流量从www.myurl.com重定向到www.myurl.com:3001,这在.htaccess mod重写条件下非常直接。但我得到的是从www.myurl.com到www.myurl.com:3001的重定向,我希望看到应用程序在URL下的端口3001上运行而没有任何其他端口,以便任何访问该URL的用户www.myurl.com看到该应用程序在www.myurl.com:3001上运行,但在他的浏览器中有一个没有任何端口号的“干净”URL:www.myurl.com。
最好的方法是什么? 这是我到目前为止所得到的:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.myurl.com [NC]
RewriteRule (.*) http://www.myurl.com:3001/$1 [R=301,L]
任何提示或帮助将不胜感激,谢谢!
答案 0 :(得分:1)
您无法重定向,因为它始终显示端口。
您需要在Apache中配置反向代理。这可以像在this StackOverflow answer中那样完成,并且在您的apache配置中看起来有点像这样:
<VirtualHost *:80>
ServerAdmin admin@myurl.com
ServerName myurl.com
ServerAlias www.myurl.com
ProxyRequests off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
<Location />
ProxyPass http://localhost:3001/
ProxyPassReverse http://localhost:3001/
</Location>
</VirtualHost>
答案 1 :(得分:1)
两种方法
更改端口号
Listen 3001
http://httpd.apache.org/docs/2.2/mod/mpm_common.html#listen
反向代理
<VirtualHost *:80>
ProxyPreserveHost On
ProxyRequests Off
ServerName www.myurl.com
ServerAlias myurl.com
ProxyPass / http://myurl.com:3001/
ProxyPassReverse / http://myurl.com:3001/
</VirtualHost>