diff options
Diffstat (limited to 'lib/cli/server.js')
-rw-r--r-- | lib/cli/server.js | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/lib/cli/server.js b/lib/cli/server.js index 555bbb7..752f867 100644 --- a/lib/cli/server.js +++ b/lib/cli/server.js @@ -71,11 +71,18 @@ Server.prototype.start = function(dir, port) { // Redirect to directory's index.html function redirect() { + var resultURL = urlTransform(req.url, function(parsed) { + parsed.pathname += '/'; + return parsed; + }); + res.statusCode = 301; - res.setHeader('Location', req.url + '/'); - res.end('Redirecting to ' + req.url + '/'); + res.setHeader('Location', resultURL); + res.end('Redirecting to ' + resultURL); } + res.setHeader('X-Current-Location', req.url); + // Send file send(req, url.parse(req.url).pathname, { root: dir @@ -106,4 +113,16 @@ Server.prototype.start = function(dir, port) { }); }; +/** + urlTransform is a helper function that allows a function to transform + a url string in it's parsed form and returns the new url as a string + + @param {String} uri + @param {Function} fn + @return {String} +*/ +function urlTransform(uri, fn) { + return url.format(fn(url.parse(uri))); +} + module.exports = Server; |