【问题标题】:How do you redirect a URL with a port number in Apache Tomcat 8.0.9 so that user cannot see port number如何在 Apache Tomcat 8.0.9 中重定向带有端口号的 URL,以便用户看不到端口号
【发布时间】:2018-08-19 02:07:51
【问题描述】:

我正在使用 Redhat,我正在尝试在 apache tomcat 中重定向一个 url。例如,我有一个网址是 http://example:8282。我想重定向页面,这样当我输入 http://example/alfresco 时,它会在浏览器中显示 http://example/alfresco,这样用户就看不到端口号。我已经成功重定向但没有重定向并保留我想要重定向到实际 url 的 url,我不想看到。

我在 /etc/httpd/conf/httpd.conf 中尝试过的事情

#
Redirect permanent /alfresco http://<ip address>:8282/
#

我也试过

#
RedirectMatch ^/tomcat/(*)$ http://<ip address>:8282/$1
#

我也试过

#
RewriteEngine On
RewriteCond %<ip address>:8282   !^1.1.33.201\/tomcat
RewriteCond %<ip address>:8282   !^$
RewriteCond %8080                !80$
RewriteRule ^tomcat/?$           http://<ip-address> [PT]
#

谢谢你, 任何帮助将不胜感激

【问题讨论】:

    标签: apache tomcat redirect redhat


    【解决方案1】:

    因为我认为有一个根本性的错误,所以我会先尝试重新定义最重要的方面,然后再为您提供解决方案:

    重定向: 您不能仅使用重定向来隐藏端口或任何 URL,因为重定向就是这样做的 - 重定向。所以即使你在用户输入http://example/alfresco时正确配置它们,他也会被重定向到http://example:8282/alfresco

    端口: 当您将浏览器指向http://example/ 时,它实际上会在端口80 http://example:80/ 上加载主机example。隐藏端口的唯一原因是因为 80 是 HTTP 协议的默认端口,因此所有浏览器都默认设置为隐藏它。对于所有其他端口,情况并非如此,例如,当您访问 http://example:8282/ 时。

    解决方案: 要隐藏非标准端口或您不想看到的任何其他地址,您需要代理它。对于您的情况,我建议使用 ProxyPass。可以在这里看到一个工作示例: https://stackoverflow.com/a/7818502/2948573

    【讨论】:

    • 感谢您的回复。这确实有效,但不适用于目录结构。我可以去 http:///tomcat 但是如果我点击tomcat里面一个叫做docs的链接,它会尝试去http:///docs 它有一个错误说页面不存在,因为它没有考虑代理。它应该转到 http:///tomcat/docs。所以它确实有效,只是不适用于目录结构。
    猜你喜欢
    • 2015-06-08
    • 2017-01-06
    • 2016-11-11
    • 1970-01-01
    • 1970-01-01
    • 2015-10-13
    • 2014-12-18
    • 1970-01-01
    • 2013-12-27
    相关资源
    最近更新 更多