我有 Apache 配置:
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerName project.example.com
ServerAlias ci
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPreserveHost on
ProxyPass / http://localhost:1111/project
SSLCertificateFile /etc/letsencrypt/live/sub.example.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/sub.example.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
SSLCertificateChainFile /etc/letsencrypt/live/sub.example.com/chain.pem
</VirtualHost>
</IfModule>
当我输入 时project.example.com
,我进入https://project.example.com/project/users/sign_in
浏览器。如何从 URL 中删除上下文路径?我想project
从 URL 中删除并获取https://project.example.com/users/sign_in
?
答案1
我认为您漏掉了结尾的斜线:
ProxyPass / http://localhost:1111/project/
定义相应的ProxyPassReverse也是一个好主意:
ProxyPassReverse / http://localhost:1111/project/
答案2
因此,首先要从应用程序中删除上下文根。除非您将上下文定义为 /(空白),否则您无法在没有上下文根的情况下访问应用程序。
这解决方案应该能让您了解如何更改上下文根。完成这些步骤后,您应该能够访问您的应用程序http://本地主机:1111/。
然后进入 httpd 配置删除项目名称:
ProxyPass / http://localhost:1111/