【问题标题】:Meteor Iron Router: How to handle a redirected url with double slashMeteor Iron Router:如何处理带有双斜杠的重定向 url
【发布时间】:2014-04-27 09:02:38
【问题描述】:

我已从旧网站重定向到新网站。新网站是用 Meteor 和 Iron Router 构建的。重定向的网址是: https://example.com//redirected-url

如您所见,此网址中有一个双斜杠。 出于某种原因,我无法使用旧网站的 htaccess 文件来修改正则表达式。 所以我最后的选择是用 Iron Router 处理这种路由。

你知道如何用 Iron Router 管理这种路由吗?

更新:

这里是一个路由器配置示例(所有路由都遵循相同的配置):

路由器.配置({ 布局模板:“布局”, 加载模板:“加载” }); 路由器.map(函数(){ this.route("路由名称", { 小路:”/”, 模板:“模板名称”, 等待:函数(){ return Meteor.subscribe("list"); } }); // 捕获所有未处理路由的路由 this.route("未找到", { 小路:”*” });

提前致谢。

【问题讨论】:

  • 你尝试在Router.map()函数中设置了哪些路径?
  • 感谢您的回复。我用我使用的配置模型更新了答案。事实上,我正在寻找一种将带有双斜杠的 url 重定向到“notfound”路由的方法。
  • 只是为了确定,使用/%2F作为路径不匹配//
  • 很遗憾,/%2F, /%, /%*, */% 不匹配 //
  • 我建议发布进行实际匹配的内部 Iron-router 代码(通过使用浏览器的调试器进入它或仅浏览 github 上的源代码来找到它)。一旦您发现我们可以直接对其进行测试并找出如何强制匹配。

标签: redirect meteor iron-router


【解决方案1】:

我不确定这样做是否正确,但它确实有效。

Template.mainTemplate.rendered = function() {
    if(
        window.location.pathname === "//url-example-1"
        || window.location.pathname === "//url-example-2"
        || window.location.pathname === "//url-etc"  
    ){  Router.go("home")  }
};

【讨论】:

    【解决方案2】:

    我做了与@Carl B. 建议的几乎相同的操作,但还是使用了我不知道为什么对我不起作用的 Router.go("Home") 我使用了 location.href javascript 方法。

    Meteor.startup(function () {
        Template.Home.rendered = function(){
            if(window.location.pathname === "//"){
                location.href = "/";
            }
        }
    }
    

    【讨论】:

      【解决方案3】:

      我知道这是一个旧帖子,但如果有人遇到同样的问题。

      我遇到了同样的问题,解决方法是找出双斜杠出现的原因!

      原因是:当我设置重定向 url 时,重定向 url 的末尾有一个额外的斜线。例如:http://www.something.com/ 我把它改成了http://www.something.com 然后就没有问题了。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-02-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多