使用Javascript或PHP在URL前面添加字符串(子域)

Adding a string (subdomain) to the front of URL with Javascript or PHP

本文关键字:字符串 添加 子域 前面 URL Javascript PHP 使用      更新时间:2023-09-26

我一直在搜索,但找不到太多关于这方面的信息。

基本上,我正在建立一个(基于PHP)的网站,并为我自己的语言切换实现我需要有按钮,我可以点击,它会重定向到所选语言完全相同的页面。例如:http://example.com/page1?param1到http://es.example.com/page1?param1.

是否有办法做到这一点与javascript或php?

谢谢!

使用PHP,很容易找到当前URL:

$_SERVER['REQUEST_URI'] -> /page1?param1
$_SERVER['HTTP_HOST'] -> example.com

您可以很容易地使用这些信息来添加链接,按钮或菜单到其他语言版本

你可以使用:

window.location.href

所以你的按钮可以调用一个函数并传递一个值给那个函数。然后使用正则表达式,您可以在适当的位置插入语言变量。

<button id='esLanguage' onclick="changeLanguage('es')"></button>
function changeLanguage(language) {
    var url = window.location.href
    var newUrl = url.replace(/^http:'/'//, 'http://' + language + '.')
    windows.location = newUrl;
}

这些都是假设您为每种语言设置了子域。

使用JavaScript,可以这样做:

window.location.host = `subdomain.${window.location.host}`

注意,这会重载页面

当前window.location最简单的解决方案:

function withSubdomain(path = window.location.pathname, subdomain = 'blog') {
    const { protocol, host } = window.location;
    return `${protocol}//${subdomain}.${host}${path}`;
}

试试这个。你应该包括你的子域名路径在href,然后点击链接,它会自动重定向到页面。

<a href="http://es.example.com/page1?param1">param1</a>
<a href="http://es.example.com/page1?param2">param2</a>
<a href="http://es.example.com/page1?param3">param3</a>
<a href="http://es.example.com/page1?param4">param4</a>
<a href="http://es.example.com/page1?param5">param5</a>
.
.
.
..

注意:*每个链接都是新的HTML页面