http: no Host in request URL
I've installed ladder with docker compose as mentioned in the readme, just changed the port for my nginx reverse proxy. Worked fine, but every url I try to use, the respone is the same:
Get "https://www.exampledomain.tld": http: no Host in request URL
Thank you for your help in advance
Please post the docker-compose file (minus auth secrets) and the nginx config. This is too little info to work with
I also noticed this when accessing Ladder behind a reverse proxy (https://ladder.mydomain.com) and referencing it with a hostname (e.g. http://server:8080). Ladder only loads webpages when I use http://<LAN_IP>:8080.
The issue stems from how the URL is pieced together. In Firefox and Chrome, if I paste an article with HTTPS into Ladder, I'm led to the following URL:
https://ladder.<my_domain>/https:/<article_url>
Same with the hostname over HTTP:
http://server:8080/https:/<article_url>
Note the https:/ before the article URL. Manually adding the second slash doesn't work, either. But when I refer to my Ladder instance by its IP, it works and there are two slashes in the URL:
http://<LAN_IP>:8080/https://<article_url>
12ft utilizes query strings for proxied URLs... maybe Ladder could do the same?
Same on apache2 on Debian Linux. I use the ladder on port 8081
./ladder -p 8081
2025/01/26 11:16:37 WARN: No ruleset specified. Set the `RULESET` environment variable to load one for a better success rate.
┌───────────────────────────────────────────────────┐
│ Fiber v2.50.0 │
│ http://127.0.0.1:8081 │
│ (bound on host 0.0.0.0 and port 8081) │
│ │
│ Handlers ............ 14 Processes ........... 1 │
│ Prefork ....... Disabled PID ............. 27014 │
└───────────────────────────────────────────────────┘
Apache2 config. I want to access on Port 447
<VirtualHost *:447>
ServerName www.xxxx.yy:447
Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"
#Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains"
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel info
ErrorLog /var/log/apache2/447_error.log
CustomLog /var/log/apache2/447_ssl_access.log combined
# SSL Engine Switch:
# Enable/Disable SSL for this virtual host.
SSLEngine on
SSLCertificateFile /etc/ssl/certs/fullchain.xxxx.pem
SSLCertificateKeyFile /etc/ssl/private/www.xxxxx_key.pem
ProxyPass / http://127.0.0.1:8081/
ProxyPassReverse / http://127.0.0.1:8081/
</VirtualHost>
</IfModule>
This is probably caused by the merge_slashes option in nginx, which defaults to on. You need to disable it with merge_slashes off, a similar option probably exists for apache. You probably do not want to disable this globally for everything, so include it in the server block specific for ladder in nginx.
@rayes0 Do you know if there's something similar for Traefik? I'm getting the same issue. This used to work, so maybe it's an update in traefik, since it doesn't look like Ladder has been updated in a year.
EDIT: Looks like yep, traefik was changed two weeks ago: https://github.com/traefik/traefik/releases/tag/v3.3.6
Added an issue to traefik to try to figure out how this can be resolved:
https://github.com/traefik/traefik/issues/11725
Conceptually, should be able to create an additional entryPoint and use that as well, but doesn't seem to be working.
EDIT: For now, reverted to traefik:3.3.5, which works.
For anyone else running behind Traefik, you can set sanitzepath on your entrypoint to false.