当前位置: 首页 > 面试题库 >

如何使用Express重定向所有不匹配的URL?

左丘涵畅
2023-03-14
问题内容

我想将所有不匹配的URL重定向到我的主页。就是
有人去www.mysite.com/blah/blah/blah/foo/barwww.mysite.com/invalid_url-我想将他们重定向到www.mysite.com

显然,我不想干扰我的有效网址。

那么,是否可以使用一些通配符匹配器将请求重定向到这些无效的url?


问题答案:

您可以在Express链中插入“全部捕获”中间件作为最后一个中间件/路由:

//configure the order of operations for request handlers:
app.configure(function(){
  app.use(express.logger('dev'));
  app.use(express.bodyParser());
  app.use(express.cookieParser());
  app.use(express.static(__dirname+'/assets'));  // try to serve static files
  app.use(app.router);                           // try to match req with a route
  app.use(redirectUnmatched);                    // redirect if nothing else sent a response
});

function redirectUnmatched(req, res) {
  res.redirect("http://www.mysite.com/");
}

...

// your routes
app.get('/', function(req, res) { ... });
...

// start listening
app.listen(3000);

我使用这样的设置来生成自定义404 Not Found页面。



 类似资料:
  • 问题内容: 我想从一个URL请求重定向到另一个“ POST”请求,如下所示: 但是,我无法重定向到“ / test”页面,因为它是POST请求。 那么,在保持“ / test”请求POST的情况下,如何使重定向工作呢? 问题答案: 你可以这样做: 它将保留send方法。 供参考,307 http代码规范为: 307临时重定向(自HTTP / 1.1起)在这种情况下,应使用另一个URI重复请求,但是

  • 使用测试字符串: 是否可以将所有StringX作为反向引用?目前,我尝试的内容每次都会被覆盖,因此我最终会得到一个匹配项,即最后一个匹配项。 例如使用这样的正则表达式: 最后总是以的匹配结束。 到目前为止,我发现的最好的方法是删除上面的并在空格上爆炸,但我对是否有一种方法可以纯粹使用正则表达式来做到这一点很感兴趣。 专门更新PHP,实现这一点的最佳方法是什么?

  • 我正在通过这个sdk集成Instagram登录https://github.com/crino/instagram-ios-sdk 我用重定向URI"http://www.webvillee.com/callback"注册了我的应用程序,并获得了客户端ID和秘密ID。 现在,当我想通过应用程序登录时,它显示错误400“重定向URI与注册的重定向URI不匹配”。 我还试图在安全会话中用ig Clie

  • 我有这样一个字符串: 最终,我需要修改匹配的子字符串的每个实例,但我还需要修改和之前/之后的每个子字符串。 下面的正则表达式匹配a

  • 问题内容: 我正在写一个简单的基于PHP的MVC-ish框架。我希望该框架能够安装在任何目录中。 我的PHP脚本抓取了请求uri并将其分为多个部分。它使段1成为控制器,而段2成为动作。当我这样做时,一切都很好 它将转到特定的模块控制器和方法。现在,我有一个默认控制器,即home控制器,它位于文件夹home中。 ,它将显示403禁止,因为此文件夹确实存在,相反,它也应该返回如果我将框架安装在其他文件

  • 问题内容: 我正在使用Node.js和Express,并且具有以下路由: 我有一个Disqus小部件上我的课的网页,我注意到一个奇怪的行为是要当和我得到两个不同的网页(对他们都有我以前在Disqus增加,而另一个没有评论评论)。 有没有一种方法可以将我的所有网址“规范化”为不加斜杠?我尝试添加标志来表达,但结果相同 谢谢 问题答案: 尝试为此添加中间件;