[GH-ISSUE #5123] supporting ; delimiters for legacy http URIs #4009

Closed
opened 2026-05-05 14:32:53 -06:00 by gitea-mirror · 4 comments
Owner

Originally created by @kzkaram on GitHub (Jan 12, 2026).
Original GitHub issue: https://github.com/fatedier/frp/issues/5123

Describe the feature request

In trying to use the http type to expose an older web server I encountered an issue when eventually browsing to that site via an nginx proxy/frp tunnel set up, whereby the fisrt age of the site was reachable but hen navigating to sub pages did not work. Eventually found it was due to the navigation URI's using ; delimiters rather than say &. I am a total noob at all of these things so excuse my guesswork but I think might be due to what happens when you use the http method and perhaps how this is parsed. If I use tcp method it all works just fine but then I can't define custom sites in frpc. I see this as a feature request rather than bug as it is more to support legacy sites than something intrinsically wrong

Describe alternatives you've considered

No response

Affected area

  • Docs
  • Installation
  • Performance and Scalability
  • Security
  • User Experience
  • Test and Release
  • Developer Infrastructure
  • Client Plugin
  • Server Plugin
  • Extensions
  • Others
Originally created by @kzkaram on GitHub (Jan 12, 2026). Original GitHub issue: https://github.com/fatedier/frp/issues/5123 ### Describe the feature request In trying to use the http type to expose an older web server I encountered an issue when eventually browsing to that site via an nginx proxy/frp tunnel set up, whereby the fisrt age of the site was reachable but hen navigating to sub pages did not work. Eventually found it was due to the navigation URI's using ; delimiters rather than say &. I am a total noob at all of these things so excuse my guesswork but I think might be due to what happens when you use the http method and perhaps how this is parsed. If I use tcp method it all works just fine but then I can't define custom sites in frpc. I see this as a feature request rather than bug as it is more to support legacy sites than something intrinsically wrong ### Describe alternatives you've considered _No response_ ### Affected area - [ ] Docs - [ ] Installation - [ ] Performance and Scalability - [ ] Security - [ ] User Experience - [ ] Test and Release - [ ] Developer Infrastructure - [ ] Client Plugin - [ ] Server Plugin - [ ] Extensions - [ ] Others
Author
Owner

@fatedier commented on GitHub (Jan 13, 2026):

In HTTP/HTTPS proxy mode, frp relies on Go’s standard URL parsing and does not support using ; as a query parameter separator. We don’t plan to add legacy ;-delimiter support.

As a workaround, please use type = tcp (raw TCP) or update/rewrite the URLs to use & / proper encoding.

<!-- gh-comment-id:3741469435 --> @fatedier commented on GitHub (Jan 13, 2026): In HTTP/HTTPS proxy mode, frp relies on Go’s standard URL parsing and does not support using ; as a query parameter separator. We don’t plan to add legacy ;-delimiter support. As a workaround, please use type = tcp (raw TCP) or update/rewrite the URLs to use & / proper encoding.
Author
Owner

@kzkaram commented on GitHub (Jan 13, 2026):

Yes I did find that type = tcp works great, but then I have to specify port numbers to separate different client sites rather than have ability to specify connection by custom site name, or is there a way to do that via the tcp method?

<!-- gh-comment-id:3744565314 --> @kzkaram commented on GitHub (Jan 13, 2026): Yes I did find that type = tcp works great, but then I have to specify port numbers to separate different client sites rather than have ability to specify connection by custom site name, or is there a way to do that via the tcp method?
Author
Owner

@fatedier commented on GitHub (Jan 13, 2026):

You could consider deploying additional nginx-like proxy to handle these parameters.

<!-- gh-comment-id:3744912686 --> @fatedier commented on GitHub (Jan 13, 2026): You could consider deploying additional nginx-like proxy to handle these parameters.
Author
Owner

@kzkaram commented on GitHub (Jan 14, 2026):

Thank you for your responses. I was indeed already using nginx to act as an https proxy to frps. I also did consider trying to do something in nginx to change the ; to & before passing to frps. It was not quite that simple because there were other issues other than the ; which did not translate for some reason, but in the end with the help of AI I did actually manage to get an nginx configuration which so far appears to do the job :-)

<!-- gh-comment-id:3752067746 --> @kzkaram commented on GitHub (Jan 14, 2026): Thank you for your responses. I was indeed already using nginx to act as an https proxy to frps. I also did consider trying to do something in nginx to change the ; to & before passing to frps. It was not quite that simple because there were other issues other than the ; which did not translate for some reason, but in the end with the help of AI I did actually manage to get an nginx configuration which so far appears to do the job :-)
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: github-starred/frp#4009
No description provided.