2015-02-06 74 views
0

是否有任何方式來檢測用戶的請求的URL,並重新路由到一個特定的錯誤頁面,例如, 我想要所有的路由到任何HTML文件(* .html),類型的檢測,並希望它被重新路由到一個錯誤頁面。同時將它從用戶隱藏來查看它。如何限制用戶訪問ExpressJS/NodeJS中的靜態html文件?

P.S:使用Express 4和最新的Node.JS版本。

app.get('/', function(req,res){ 
    if(req.is('text/html') == true){ 
     res.redirect('/login'); 
    } 

這似乎不起作用,我想我錯過了獲取請求中的參數。

請指導。提前致謝。

+0

只要把你的代碼片段你'app.use(express.static(...))之前; 「它應該工作。 – 2015-02-06 09:52:38

+1

如果你不想讓人們訪問它們,你爲什麼首先在靜態路由下託管這些文件? – Quentin 2015-02-06 09:54:18

+0

@Quentin我應該把他們放在哪裏? – theChinmay 2015-02-06 10:01:24

回答

2

假設您的網址中有文字html,並且每當發生這種情況時,您都需要將其路由到login。嘗試以下操作:

app.use(function (req, res, next) { 
    if ((req.path.indexOf('html') >= 0)) { 
     res.redirect('/login'); 
    } 
}); 

它會檢查你的URL路徑,如果它檢測到html它會重定向到login

+2

或者在路由中使用正則表達式:'app.use(/ html $ /,function ...)' – laggingreflex 2015-02-06 12:10:49