admin管理员组文章数量:1130349
A user will be directed from a website to a landing page that will have a query string in the URL i.e. www.sitename?foo=bar&bar=foo. What I want to do, is then append that query string to all links on the page, preferably whether they were generated by WordPress or not (i.e. hard coded or not) and done server-side.
The reason for this is because their goal destination has to have the query string in the URL. I could use cookies, but i'd rather not since it has many other problems that it will bring with it for my specific use case.
I have explored the possibility of using .htaccess in conjunction with $_SERVER['QUERY_STRING'] to no avail. My understanding of .htaccess isn't great, but in my mind I assumed it would be possible to rewrite the current URL to be current URL + the variable that stores $_SERVER['QUERY_STRING'].
I've also explored add_rewrite_rule but couldn't find a logical way to achieve what I want.
Here's the Javascript solution I have, but as I said, I'd like a server-side solution:
const links = document.querySelectorAll('a');
links.forEach(link => {
if (!link.host.includes(location.host)) {
return;
}
const url = new URL(link.href);
const combined = Array.from(url.searchParams.entries()).reduce((agg, [key, val]) => {
agg.set(key, val);
return agg;
}, (new URL(location.href)).searchParams);
const nextUrl = [link.protocol, '//', link.host, link.pathname].join('');
link.href = (new URL(`${nextUrl}?${combined.toString()}`)).toString();
});
A user will be directed from a website to a landing page that will have a query string in the URL i.e. www.sitename?foo=bar&bar=foo. What I want to do, is then append that query string to all links on the page, preferably whether they were generated by WordPress or not (i.e. hard coded or not) and done server-side.
The reason for this is because their goal destination has to have the query string in the URL. I could use cookies, but i'd rather not since it has many other problems that it will bring with it for my specific use case.
I have explored the possibility of using .htaccess in conjunction with $_SERVER['QUERY_STRING'] to no avail. My understanding of .htaccess isn't great, but in my mind I assumed it would be possible to rewrite the current URL to be current URL + the variable that stores $_SERVER['QUERY_STRING'].
I've also explored add_rewrite_rule but couldn't find a logical way to achieve what I want.
Here's the Javascript solution I have, but as I said, I'd like a server-side solution:
const links = document.querySelectorAll('a');
links.forEach(link => {
if (!link.host.includes(location.host)) {
return;
}
const url = new URL(link.href);
const combined = Array.from(url.searchParams.entries()).reduce((agg, [key, val]) => {
agg.set(key, val);
return agg;
}, (new URL(location.href)).searchParams);
const nextUrl = [link.protocol, '//', link.host, link.pathname].join('');
link.href = (new URL(`${nextUrl}?${combined.toString()}`)).toString();
});
本文标签: phpAppend query string to all URL39s
版权声明:本文标题:php - Append query string to all URL's 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://it.en369.cn/questions/1749033093a2305983.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。


发表评论