在 apache 虚拟主机中重定向和隐藏端口(文件夹) - xwiki

Posted

技术标签:

【中文标题】在 apache 虚拟主机中重定向和隐藏端口(文件夹) - xwiki【英文标题】:redirect and hide port (folder) in apache virtualhost - xwiki 【发布时间】:2020-06-28 13:55:14 【问题描述】:

环境:JETTY 9.4 上的 Ubuntu 18、Apache2、XWiki 12.1

我在https://wiki.company.com:8443/xwiki/ 上有xwiki,我想隐藏端口8443 和可选的/xwiki/。 我尝试过使用虚拟主机:

<VirtualHost *:443>
    ProxyPreserveHost On

    SSLProxyEngine On
    SSLProxyCheckPeerCN Off
    SSLCertificateFile      /etc/ssl/certs/company.crt
    SSLCertificateKeyFile   /etc/ssl/private/comapny.key

    ProxyPass / https://wiki.company.com:8443/xwiki/
    ProxyPassReverse / https://wiki.company.com:8443/xwiki/
</VirtualHost>

这种类似的解决方案适用于许多项目,但不适用于 xwiki。问题是在这个解决方案中,xwiki 在加载一些文件时存在问题,因为它仍然尝试从 https://wiki.company.com/xwiki/webjars/wiki%3Axwiki/drawer/2.4.0/css/drawer.min.css

而不是

https://wiki.hl-display.com/webjars/wiki%3Axwiki/drawer/2.4.0/css/drawer.min.css

那么也许还有其他解决方案,例如删除xwiki

    ProxyPass / https://wiki.company.com:8443/
    ProxyPassReverse / https://wiki.company.com:8443/

在浏览器中输入时将用户重定向到 https://wiki.company.comhttps://wiki.company.com/xwiki/

或者mod重写来替换字符串

https://wiki.company.com/xwiki/hhh/jjj/aaa

https://wiki.company.com/hhh/jjj/aaa ?

我尝试了很多设置,但都没有成功:(

【问题讨论】:

你可以尝试通过htaccess重定向它。 Xwiki 安装在 JETTY 9,4 上。我使用 Apache Virtualost。 重写条件可以写在apache虚拟主机配置文件中。 你能帮我解决重写条件吗?我尝试了很多组合都没有成功:( 查看***.com/questions/9611521/… 【参考方案1】:

好的,我找到了解决方案 :) 在 VirtualHost 中添加 3 行

RewriteCond %HTTP_HOST wiki.company.com$ [NC]
RewriteCond %REQUEST_URI !^/xwiki/(.*)$
RewriteRule ^(.*)$ /xwiki/ [R=301,L]

所以现在当用户输入确切的 URL:https://wiki.company.com 时,它将重定向到 https://wiki.company.com\xwiki\。所以 wiki 工作,端口被隐藏并且很好的 URL 工作:)

所以完整的代码是:

<VirtualHost *:443>
    ProxyPreserveHost On

    SSLProxyEngine On
    SSLProxyCheckPeerCN Off
    SSLCertificateFile      /etc/ssl/certs/company.crt
    SSLCertificateKeyFile   /etc/ssl/private/company.key

    RewriteEngine on
    ServerName https://wiki.company.com
    RewriteCond %HTTP_HOST wiki.company.com$ [NC]
    RewriteCond %REQUEST_URI !^/xwiki/(.*)$
    RewriteRule ^(.*)$ /xwiki/ [R=301,L]
    ProxyPass / https://wiki.company.com:8443/
    ProxyPassReverse / https://wiki.company.com:8443/
</VirtualHost>

【讨论】:

以上是关于在 apache 虚拟主机中重定向和隐藏端口(文件夹) - xwiki的主要内容,如果未能解决你的问题,请参考以下文章

Apache环境中重定向301的配置

如何在 Spring 中重定向到另一台主机

如何在 Apache 2.4 中重定向 /path/variables/ 以重写为 /index.php/path/variables/?

无法确定 Docker 中重定向的 https 端口

在通配符 vhost apache (xampp) 设置中重定向子子域

apache_conf htaccess在Wordpress中重定向上传