setting base URL of relative URL starting with slash
I am building a reverse proxy with virtual path applications, so that people can visit target site by visiting my site with a top directory indicating which site they are visiting. For example,
https://example-mysite.net/google/
will be redirected to
https://google.net
problem is that in the body of returned html, all links still point to google.net and will not go through my proxy, so I need to rewrite all URLs in body
absolute urls are easy to find using regex, and I found out that I can set the base URL of relative URLs by using the "base" tag, for example, if I write
<base href="https://example-mysite.net/google/">
relative URLs in the body like
<img src="stickman.gif">
will be redirected to https://example-mysite.net/google/stickman.gif, and this will be correctly resolved by my proxy and redirected to https://google.net/stickman.gif
the problem is, relative URLs starting with slash like
<img src="/path/to/root/resource">
will visit https://example-mysite.net/path/to/root/resource, which obviously is not what I want since I have no idea where should I redirect this request.
Is there a way to solve this problem, so that I do not lose the top directory I specified in the base tag?
html haproxy
add a comment |
I am building a reverse proxy with virtual path applications, so that people can visit target site by visiting my site with a top directory indicating which site they are visiting. For example,
https://example-mysite.net/google/
will be redirected to
https://google.net
problem is that in the body of returned html, all links still point to google.net and will not go through my proxy, so I need to rewrite all URLs in body
absolute urls are easy to find using regex, and I found out that I can set the base URL of relative URLs by using the "base" tag, for example, if I write
<base href="https://example-mysite.net/google/">
relative URLs in the body like
<img src="stickman.gif">
will be redirected to https://example-mysite.net/google/stickman.gif, and this will be correctly resolved by my proxy and redirected to https://google.net/stickman.gif
the problem is, relative URLs starting with slash like
<img src="/path/to/root/resource">
will visit https://example-mysite.net/path/to/root/resource, which obviously is not what I want since I have no idea where should I redirect this request.
Is there a way to solve this problem, so that I do not lose the top directory I specified in the base tag?
html haproxy
add a comment |
I am building a reverse proxy with virtual path applications, so that people can visit target site by visiting my site with a top directory indicating which site they are visiting. For example,
https://example-mysite.net/google/
will be redirected to
https://google.net
problem is that in the body of returned html, all links still point to google.net and will not go through my proxy, so I need to rewrite all URLs in body
absolute urls are easy to find using regex, and I found out that I can set the base URL of relative URLs by using the "base" tag, for example, if I write
<base href="https://example-mysite.net/google/">
relative URLs in the body like
<img src="stickman.gif">
will be redirected to https://example-mysite.net/google/stickman.gif, and this will be correctly resolved by my proxy and redirected to https://google.net/stickman.gif
the problem is, relative URLs starting with slash like
<img src="/path/to/root/resource">
will visit https://example-mysite.net/path/to/root/resource, which obviously is not what I want since I have no idea where should I redirect this request.
Is there a way to solve this problem, so that I do not lose the top directory I specified in the base tag?
html haproxy
I am building a reverse proxy with virtual path applications, so that people can visit target site by visiting my site with a top directory indicating which site they are visiting. For example,
https://example-mysite.net/google/
will be redirected to
https://google.net
problem is that in the body of returned html, all links still point to google.net and will not go through my proxy, so I need to rewrite all URLs in body
absolute urls are easy to find using regex, and I found out that I can set the base URL of relative URLs by using the "base" tag, for example, if I write
<base href="https://example-mysite.net/google/">
relative URLs in the body like
<img src="stickman.gif">
will be redirected to https://example-mysite.net/google/stickman.gif, and this will be correctly resolved by my proxy and redirected to https://google.net/stickman.gif
the problem is, relative URLs starting with slash like
<img src="/path/to/root/resource">
will visit https://example-mysite.net/path/to/root/resource, which obviously is not what I want since I have no idea where should I redirect this request.
Is there a way to solve this problem, so that I do not lose the top directory I specified in the base tag?
html haproxy
html haproxy
edited Nov 20 '18 at 11:22
Difu Chen
asked Nov 20 '18 at 11:16
Difu ChenDifu Chen
12
12
add a comment |
add a comment |
0
active
oldest
votes
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53391830%2fsetting-base-url-of-relative-url-starting-with-slash%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53391830%2fsetting-base-url-of-relative-url-starting-with-slash%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown