重定向和隐藏apachevirtualhost-xwiki中的端口(文件夹)



Env:Ubuntu 18,Apache2,XWiki 12.1在JETTY 9.4 上

我在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.com时将用户重定向到https://wiki.company.com/xwiki/

或者mod重写以替换字符串

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

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

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

好的,我找到了解决方案:(通过在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.comxwiki。所以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>

最新更新