У меня есть конфиг 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
?
Итак, сначала нужно удалить корень контекста из приложения. Если вы не определите контекст как / (пусто), вы не сможете получить доступ к приложению без корневого контекста.
это Решение должен дать вам представление о том, как изменить корень контекста. Когда вы закончите с шагами, вы сможете получить доступ к своему приложению на http: // локальный: 1111 /.
Затем зайдя в конфигурацию httpd, удалите название проекта:
ProxyPass / http://localhost:1111/
Я думаю, вам не хватает косой черты в конце:
ProxyPass / http://localhost:1111/project/
Также неплохо определить соответствующий ProxyPassReverse:
ProxyPassReverse / http://localhost:1111/project/