Created
November 2, 2016 19:59
-
-
Save sgrasso/da2117f8dba571ed3fec16dd91605642 to your computer and use it in GitHub Desktop.
Convert a CSV file of url redirects into a redirect.conf file for use in Apache
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/************************ | |
--Usage | |
node covertCSV.js filename.csv > redirect.conf | |
CSV column A contains base URL and column B contains the Redirect URL. | |
Generates redirects based off of unique GUID in query string if present. | |
************************/ | |
var fs = require('fs'); | |
var buffer = ""; | |
var stream = fs.createReadStream(process.argv[process.argv.length - 1]); | |
stream.addListener('data', function(data){ | |
buffer += data.toString(); | |
}); | |
stream.addListener('end', function(){ | |
var parts = buffer.split('\r\n'); | |
var urlSplit = ""; | |
var uids = [], uid = ""; | |
for (var i = 0; i < parts.length; i++) { | |
if (parts[i].length !== 0){ | |
var urls = parts[i].split(","); | |
if (urls[0].search('uid=') != -1){ | |
uid = urls[0].match(/[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{16}/gi); | |
if (uid != null) | |
uids.push(uid); | |
} | |
else if (i !== 0){ | |
if( urls[0].search('vanityurl') !== -1){ | |
urls[0] = urls[0].replace(/\s|(http:\/\/www)/g,''); | |
urlSplit = urls[0].split("/"); | |
console.log("RewriteCond %{HTTP_HOST} (.*?)" + urlSplit[0] + "$ [NC]"); | |
console.log("RewriteCond %{REQUEST_URI} ^/" + urlSplit[1] + "(.*)$ [NC]") | |
console.log("RewriteRule ^(.*)$ "+ urls[1] + " [QSA,L,R=301]\n\r"); | |
} else { | |
console.log("RewriteCond %{REQUEST_URI} ^" + urls[0].replace(/\s/g,'') + "(.*)$ [NC]\n\r"); | |
console.log("RewriteRule ^/(.*) " + urls[1].replace(/ /g,'') + "%1 [R=301,L]\n\r"); | |
} | |
} | |
} | |
}; | |
if (uids.length){ | |
console.log("RewriteCond %{HTTP_HOST} .*?www.examplevanityurl.com$ [NC]"); | |
console.log("RewriteCond %{QUERY_STRING} uid=" + uids.join("|") + "[NC]"); | |
console.log("RewriteRule ^(.*)$ www.example.vanity.com [QSA,L,R=301]"); | |
} | |
}); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment