перенаправить и скрыть порт (папку) в apache virtualhost - xwiki - PullRequest
0 голосов
/ 17 марта 2020

Env: Ubuntu 18, Apache2, XWiki 12.1 на JETTY 9.4

У меня есть xwiki на https://wiki.company.com:8443/xwiki/, и я хотел бы скрыть порт 8443 и, возможно, /xwiki/. Я пробовал с virtualhost:

<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/

Или мод перезаписи для замены строки

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

К

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

Я пробовал много настроек, но безуспешно: (

1 Ответ

1 голос
/ 18 марта 2020

ОК, я нашел решение :) Добавив 3 строки в VirtualHost

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\. Итак, вики работает, порт скрыт, а красивый 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>
...