これは、URL を取得して解析し、クライアントがサーバーのルート フォルダーの下にないリソースを要求していないことを確認する小さな Web サーバー関数です。
function getUrl(url, resourceMap, rootFolder) {
var path = require('path');
if (typeof resourceMap[url] !== 'undefined') {
return (path.join(rootFolder,resourceMap[url]));
}
var absoluteURL = path.join(rootFolder,url);
console.log("ROOT: "+rootFolder);
console.log("NEW: "+absoluteURL);
var regex = new RegExp('^' + rootFolder + '.*')
if (absoluteURL.match(regex) === null) {
console.log("FALSE");
return (false);
}
return (absoluteURL);
}
ご覧のとおり、正規表現を使用してabsoluteURL
開始することを確認しますrootFolder
'^' + rootFolder + '.*'
これは Linux ではうまく機能しましたが、Windows では常に false を返します。
ところで、出力は
ROOT: C:\Users\user\workspace
NEW: C:\Users\user\workspace\images\IMG_7102.JPG
したがって、URLの解析が問題ないことはわかっています。
エイミーのアイデアはなぜですか?ありがとう