2017-11-14 13 views
0

私はあなたを別のウェブサイトにリダイレクトする機能を作ろうとしていますが、リダイレクトしたいウェブリンクが自分のウェブサイトのルートであると仮定して、別のウェブサイトにリダイレクトするのではありません。代わりに、それはこれにリダイレクトする他のウェブサイトへのリダイレクトのNodejs&Express:サイト内のルートではなく、別のWebサイトにリダイレクトする方法は?

app.get('/:shorturl', (req, res) => { 
    UrlShort.findOne({'ShortUrl': req.param('shorturl')}, (err, doc) => { 
     if(err) return res.send('Error Reading Database!'); 
     var re = new RegExp("$(http|https)://", "i"); 
     if(re.test(doc.OriginalUrl)){ 
      res.redirect(301, doc.OriginalUrl); 
     } else { 
      res.redirect(301, 'http://' + doc.OriginalUrl); 
     } 
    }); 
    }); 

http://localhost:3000/www.google.com 

答えて

0

あなたの問題は、機能をリダイレクトされていません。それは本当だ。しかし、あなたの正規表現は間違っています。

app.get("/redirect", function(req, res) { 
var url = "http://www.google.com"; 

var re = new RegExp("^(http|https)://", "i"); 
if(re.test(url)){ 
    console.log("#LOG1", url); 
    res.redirect(301, url); 
} else { 
    console.log("#LOG2", 'http://' + url); 
    res.redirect(301, 'http://' + url); 
}}); 
+0

は、それはまだ動作しません@endrdn、同じ問題:あなたは、私がテストした

^(http|https):// 

ここで働いているコード例に、あなたの正規表現を変更する必要があります。 – WackThat

+0

私はコード例を追加するために私の答えを編集しました。 @WackThat – endrcn

関連する問題