Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Jekyll 404 page on GitHub Pages to fix case sensitive URLs
var allposts = [];
function redirectToCorrectPage() {
console.log("Unable to find page. Trying other URL cases.");
{% for post in site.pages %}
allposts.push("{{ post.url }}");
{% endfor %}
var url = window.location.pathname;
// strip trailing /
if (url.slice(-1) === "/") {
url = url.slice(0, -1);
}
var allpostsUpperCase = allposts.map(function(value) {
// strip trailing /
if (value.slice(-1) === "/") {
value = value.slice(0, -1);
}
return value.toUpperCase();
});
console.log("Looking for "+url.toUpperCase() + " in "+allpostsUpperCase);
var i = allpostsUpperCase.indexOf(url.toUpperCase());
if (i != -1) {
console.log(allposts[i]);
window.location = allposts[i];
}
}
window.onload = redirectToCorrectPage;
@sbliven

This comment has been minimized.

Copy link
Owner Author

@sbliven sbliven commented Jul 19, 2016

This version works for all pages (not just posts), and it correctly handles cases where the domain name might change (e.g. for local development).

@rohitnishad613

This comment has been minimized.

Copy link

@rohitnishad613 rohitnishad613 commented Oct 12, 2020

Nice Script, But where to load?

@sbliven

This comment has been minimized.

Copy link
Owner Author

@sbliven sbliven commented Nov 13, 2020

Add it to your 404.html page. Original blog: https://amreldib.com/blog/FixJekyllCaseSensitiveUrlsOnGitHubPages

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.