【问题标题】:Replace part of URL onclick and redicrect替换部分 URL onclick 和重定向
【发布时间】:2014-09-14 15:33:04
【问题描述】:

我试图在这里和谷歌上寻找答案,但也许我没有使用正确的搜索词......我只是找不到它。 希望任何人都可以帮助我。

bi-lingual 商店中,当点击english flag 按钮时,我希望一个人被重定向到不同domain/url 上的同一产品。

www.mydomain**.nl/a1**/product1.html

是起点。单击英文标志应该获取域和类别并更改它并转到新创建的 url:

www.mydomain**.com/a2**/product1.html

然后

www.mydomain**.nl/b1**/product1.html,点击“英文标志”按钮后变为:

www.mydomain**.com/b2**/product1.html

等等

大约有 30 个不同的页面要这样改写,所有页面都有相同的“英文标志”按钮。

如果 url 的一部分是 '.nl/schoenen/' THEN 更改并转到 '.com/shoes/'

如果 url 的一部分是 '.nl/jassen/' THEN 更改并转到 '.com/jackets/'

【问题讨论】:

    标签: javascript php jquery .htaccess


    【解决方案1】:

    TL;DR - 使用一些 javascript 来操作 url onclick,按照您希望的方式重新组合 URL,重新加载新的 URL。

    我做过一次双语商店,并在路径中插入了一个“es”或“en”来表示西班牙语或英语,本质上是作为 URL 参数。你的目标有点复杂(我认为它必须是)但这可能会让你开始。你可以看到shop here (不是我的设计——别怪我。大部分都是应所有者的要求离线的(一些法律内容),但你应该能够浏览一些页面并看到语言切换有效。)

    单击语言切换会触发一些简单的 Javascript,如下所示:

    function switchLanguage(lang) {
      u = location.href.split('/');
      u[3] = lang;
      location.href = u.join('/');
    }
    

    然后在语言切换链接中添加一个onclick,以直接指向onclick="switchLanguage('en')"onclick="switchLanguage('es')",或者任何您的URL 注入。同样,这是特定于我的示例,其中 URL 参数将跟在第三个正斜杠 (u[3] = lang) 之后,但这应该让您开始切分 URL 以进行操作和重组。

    有一些很好的例子here

    当然,我的网站的本地化版本需要驻留在这些 url 路径下(在我的例子中,我更改了一些 PHP 全局变量以说明 URL 中的不同语言代码,所以幕后的东西是真的很小)但这是让您开始如何拆分/更改/替换您的 URL onclick 的一种方法。

    【讨论】:

      【解决方案2】:

      只需使用IF语句,如果按钮被点击,URL就会改变! 每个网址都指向不同语言的页面。如果我没听错

      【讨论】:

      • IF 部分 url 是 '.nl/schoenen/' THEN 更改并转到 '.com/shoes/' IF 部分 url 是 '.nl/jassen/' THEN 更改并转到 ' .com/jackets/' 我希望这更清楚?谢谢!
      • 这和我理解的意思很不一样。我建议您将此评论添加到主要问题中,因为它不够清楚!
      【解决方案3】:

      您当前所在的 URL 位于 window.location 对象中。当您想要重定向时,检索它(例如window.location.href),使用字符串操作更改域并重定向窗口?

      抱歉,如果我没有正确理解您的问题。

      【讨论】:

        【解决方案4】:

        您可以创建一个“翻译”当前网址的方法:

        function translateUrl(string transArticleName) {
            var newTerm = ".com/"+transArticleName+"/";
            return window.location.href.replace("/.nl/[\w]{1,}//", newTerm);
        } 
        

        或者您阅读文章名称并将其翻译成英文:

        function translateUrl(string transArticleName) {
            var oldTerm = window.location.href.match("/.nl/[\w]{1,}//")[0];
            var aName = oldTerm.match(/\/[\w]{1,}\//)[0].match(/[^\/]{1,}/)[0]
            var transArticleName = //translate aName server side
            var newTerm = ".com/"+transArticleName+"/";
            return window.location.href.replace(oldTerm, newTerm);
        } 
        

        正如你所见,我不是正则表达式的大师,所以我相信这里有更好的方法来使用它们。

        【讨论】:

          猜你喜欢
          • 2018-12-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-07-12
          • 2013-03-29
          • 2014-05-25
          • 2019-08-22
          • 1970-01-01
          相关资源
          最近更新 更多