Marie Wingyee Lau
Marie Wingyee Lau

Reputation: 85

github project sub-directory redirects to custom domain

I have a github project page here: lwymarie.github.io/QPQ_Web/Quasars_Probing_Quasars/Welcome.html

The project is named QPQ_Web. There's an index.html file in it, which points to a Welcome.html file inside the sub-directory Quasars_Probing_Quasars, where all other html files are also stored.

I'd like to replace the entire lwymarie.github.io/QPQ_Web/Quasars_Probing_Quasars/ part of the URL by www.qpqsurvey.org. i.e. I want to skip the Quasars_Probing_Quasars sub-directory in the URL. Please refer to the current www.qpqsurvey.org site to get an idea of what I mean.

Is it possible to set a permalink for this purpose without restructuring my files? Thanks.

Upvotes: 5

Views: 2117

Answers (1)

Moobie
Moobie

Reputation: 1654

It appears to be related to this question: Set subdirectory as website root on Github Pages

(1) Follow the below instructions to make your subdirectory as GitHub root, then (2) redirect http://www.qpqsurvey.org to gh-pages as you ordinarily would according to GitHub's custom domain instructions: https://help.github.com/articles/using-a-custom-domain-with-github-pages/

Copying the answer of @CodeWizard which in turn was cited from https://gist.github.com/cobyism/4730490 for the first half of my answer:

Deploying a subfolder to GitHub Pages

Sometimes you want to have a subdirectory on the master branch be the root directory of a repository’s gh-pages branch. This is useful for things like sites developed with Yeoman, or if you have a Jekyll site contained in the master branch alongside the rest of your code.

For the sake of this example, let’s pretend the subfolder containing your site is named dist.

Step 1

Remove the dist directory from the project’s .gitignore file (it’s ignored by default by Yeoman).

Step 2

Make sure git knows about your subtree (the subfolder with your site).

git add dist && git commit -m "Initial dist subtree commit"

Step 3

Use subtree push to send it to the gh-pages branch on GitHub.

git subtree push --prefix dist origin gh-pages

Boom. If your folder isn’t called dist, then you’ll need to change that in each of the commands above.


If you do this on a regular basis, you could also create a script containing the following somewhere in your path:

#!/bin/sh
if [ -z "$1" ]
then
  echo "Which folder do you want to deploy to GitHub Pages?"
  exit 1
fi
git subtree push --prefix $1 origin gh-pages

Which lets you type commands like:

git gh-deploy path/to/your/site

Upvotes: 4

Related Questions