将url:port重定向到同一个url:different-port

时间:2017-12-07 19:46:34

标签: apache .htaccess redirect

我花了5天时间寻找谷歌和这里的解决方案,但必须有一些东西逃避我或我不理解,因此我没有。

我会详细解释。我想将url:port的所有请求重定向到同一个url,但是使用另一个端口sameurl:port。示例:example.com:9717到example.com:15617

我在.htaccess中尝试了各种方法,并在vhost中使用了proxypass但没有成功。

目前请求的目的是:

myexample.com:9713/key-private/data

我想将所有流量重定向到新端口:

myexample.com:15617/key-private/data

问题是我可以使用htaccess或proxypass重定向端口,但它不会重定向私钥数据,所以当它在新端口收到请求时会发出错误,指示私钥不存在或者是不正确的。我想这是因为重定向不会发送它,或者它没有正确执行。私钥是必不可少的,因为没有它,用户无法访问。

有人可以告诉我解决方案或让我走上正确的道路吗?

我使用过的例子:

NameVirtualHost IP:15617
<VirtualHost IP:15617> 
    ServerName example.com 
    ServerAlias www.example.com
    DocumentRoot /var/www/data
    ProxyRequests off 
    ProxyPass / http://IP:9713/ 
    ProxyPassReverse / http://IP:9713/  
</VirtualHost>

RewriteCond %{HTTP_HOST} ^example.com:9713$ [NC]
RewriteCond %{SERVER_PORT} ^9713$
RewriteRule ^(.*)$ http://example.com:15617/$1 [L,R=302]

RewriteCond %{REQUEST_URI} ^\/$
RewriteRule .* http://example.com:15617/ [R=301,L]

RewriteCond %{HTTP_HOST} ^example.com:9713$ [NC]
RewriteCond %{SERVER_PORT} ^9713$
RewriteRule ^(.*)$ http://example.com:15617/$1 [L,R=302]

RewriteCond ${SERVER_PORT} 9713/$1
RewriteRule ^(.*)$ http://example.com:15617/$1 [QSA,L]

我尝试了更多选项,但我没有添加它们,因为它们没有提出太长的问题。我知道有些东西逃脱了我,但我无法理解或发现它是什么。

非常感谢你,原谅我的英语,这很糟糕。

1 个答案:

答案 0 :(得分:0)

在端口9713上,您希望 虚拟主机重定向到端口15617,对吗?所以像这样:

<VirtualHost *:9713>
  ServerName example.com
  ServerAlias www.example.com
  RedirectMatch /(.*) http://www.example.com:15617/$1
</VirtualHost>