6
votes

I have created a Github Pages site and put it on repository abc of github account with username xyz. So, my site is now live on xyz.github.io/abc I created a cname file with my custom domain, and configured my DNS with the settings said on Github pages. Now, my site is also live on mycustomdomain.com Now, I don't want my site to be live on xyz.github.io/abc . I want it to redirect to mycustomdomain.com or not accessible. Is there any way to do that? I know that I can create User Pages site (with username.github.io) which will automatically redirect to custom domain, but I want to create project site. Any suggestions?

4
The reason I want to redirect to my custom domain is because I think two websites with same content can be bad for Search Engine Optimization.manish

4 Answers

8
votes

A CNAME solution:

Sure. Github has a nice functionality for it.
When you create CNAME folder inside of your repo, you will be redirected: https://help.github.com/articles/adding-a-cname-file-to-your-repository/

Check out my Github Pages website: https://github.com/ondrek/ondrek.github.io
( you can browse ondrek.com, but it's impossible to browse ondrek.github.io )


A JS solution:

If you want to redirect a custom page — the only possible solution will be javascript redirection.

if (window.location.href==="https://xyz.github.io") {
    window.location.href = "https://mycustomdomain.com"; 
}

but it will not solve your problem with Google. You can solve this with correct using Google Webmaster Tools and tell to Google about the duplicate (for SEO purposes).

4
votes

I had a GitHub Pages website (https://kamarada.github.io/), I moved it to GitLab (https://kamarada.gitlab.io/) and besides that I set up a custom domain on GitLab (https://linuxkamarada.com/). Now the question: how to make a 301 redirect from the GitHub Pages to the custom domain? Is that possible?

Well, as Ciro Santilli answered on this other question, there is no "beautiful non-plugin solution". Indeed, the solution I found is not beautiful, it is more kind of a workaround, but it works.

Inspired by the Samuel Ondrek answer on this same question (thanks a lot!), I set up CNAME redirection.

Go to your GitHub Pages repo, click Settings and below GitHub Pages, under Custom domain, enter your custom domain and click Save.

Now open another tab on your browser, open DevTools (F12), select the Network tab. Try to access your GitHub Pages website and see that a 301 redirect happens.

GitHub is going to complain that your domain is not configured properly:

enter image description here

Well, that does not really matter. What matters is that you have the 301 redirect required by the Google Search Console's Change of Address Tool and your website won't lose its Google ranking.

1
votes

This might be a bit old but I'd still like to give an alternative answer to this. You can simply use meta refresh on your index.html

<meta http-equiv="refresh" content="1;url=http://example.com/" />

Then use a regular link (an a message also) on the page in case refresh stops. Though it is not recommended for SEO since google might index the blank page. But it would most likely work work.

0
votes

You could use JavaScript to inspect the domain of the current page and redirect if necessary. If you go this route, the question and answer are already on SO:

Redirection based on URL - JavaScript