summaryrefslogtreecommitdiff
path: root/doc/user/project/pages
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-09-19 01:45:44 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2020-09-19 01:45:44 +0000
commit85dc423f7090da0a52c73eb66faf22ddb20efff9 (patch)
tree9160f299afd8c80c038f08e1545be119f5e3f1e1 /doc/user/project/pages
parent15c2c8c66dbe422588e5411eee7e68f1fa440bb8 (diff)
downloadgitlab-ce-85dc423f7090da0a52c73eb66faf22ddb20efff9.tar.gz
Add latest changes from gitlab-org/gitlab@13-4-stable-ee
Diffstat (limited to 'doc/user/project/pages')
-rw-r--r--doc/user/project/pages/custom_domains_ssl_tls_certification/index.md2
-rw-r--r--doc/user/project/pages/getting_started/pages_from_scratch.md14
-rw-r--r--doc/user/project/pages/getting_started_part_one.md2
-rw-r--r--doc/user/project/pages/index.md1
-rw-r--r--doc/user/project/pages/introduction.md13
-rw-r--r--doc/user/project/pages/lets_encrypt_for_gitlab_pages.md2
-rw-r--r--doc/user/project/pages/pages_access_control.md4
-rw-r--r--doc/user/project/pages/redirects.md130
8 files changed, 143 insertions, 25 deletions
diff --git a/doc/user/project/pages/custom_domains_ssl_tls_certification/index.md b/doc/user/project/pages/custom_domains_ssl_tls_certification/index.md
index e6912259bfa..badafa478ef 100644
--- a/doc/user/project/pages/custom_domains_ssl_tls_certification/index.md
+++ b/doc/user/project/pages/custom_domains_ssl_tls_certification/index.md
@@ -1,6 +1,4 @@
---
-last_updated: 2020-07-25
-type: reference, howto
disqus_identifier: 'https://docs.gitlab.com/ee/user/project/pages/getting_started_part_three.html'
stage: Release
group: Release Management
diff --git a/doc/user/project/pages/getting_started/pages_from_scratch.md b/doc/user/project/pages/getting_started/pages_from_scratch.md
index cabaf734d77..a7eb4c4019f 100644
--- a/doc/user/project/pages/getting_started/pages_from_scratch.md
+++ b/doc/user/project/pages/getting_started/pages_from_scratch.md
@@ -1,6 +1,4 @@
---
-last_updated: 2020-01-06
-type: reference, howto
stage: Release
group: Release Management
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#designated-technical-writers
@@ -9,8 +7,8 @@ info: To determine the technical writer assigned to the Stage/Group associated w
# Create a GitLab Pages website from scratch
This tutorial shows you how to create a Pages site from scratch. You will start with
-a blank project and create your own CI file, which gives instruction to the
-[GitLab Runner](https://docs.gitlab.com/runner/). When your CI/CD
+a blank project and create your own CI file, which gives instruction to
+a [runner](https://docs.gitlab.com/runner/). When your CI/CD
[pipeline](../../../../ci/pipelines/index.md) runs, the Pages site is created.
This example uses the [Jekyll](https://jekyllrb.com/) Static Site Generator (SSG).
@@ -50,7 +48,7 @@ Create three files in the root (top-level) directory.
## Choose a Docker image
-In this example, the Runner uses a [Docker image](../../../../ci/docker/using_docker_images.md)
+In this example, the runner uses a [Docker image](../../../../ci/docker/using_docker_images.md)
to run scripts and deploy the site.
This specific Ruby image is maintained on [DockerHub](https://hub.docker.com/_/ruby).
@@ -95,7 +93,7 @@ job:
```
For GitLab Pages, this `job` has a specific name, called `pages`.
-This setting tells the Runner you want the job to deploy your website
+This setting tells the runner you want the job to deploy your website
with GitLab Pages:
```yaml
@@ -124,7 +122,7 @@ pages:
## Specify the `public` directory for artifacts
Now that Jekyll has output the files to the `public` directory,
-the Runner needs to know where to get them. The artifacts are stored
+the runner needs to know where to get them. The artifacts are stored
in the `public` directory:
```yaml
@@ -190,7 +188,7 @@ pages:
- public
```
-Then configure the pipeline to run the job for the master branch only.
+Then configure the pipeline to run the job for the `master` branch only.
```yaml
image: ruby:2.7
diff --git a/doc/user/project/pages/getting_started_part_one.md b/doc/user/project/pages/getting_started_part_one.md
index 949a6c16c1b..9272b1f9093 100644
--- a/doc/user/project/pages/getting_started_part_one.md
+++ b/doc/user/project/pages/getting_started_part_one.md
@@ -1,6 +1,4 @@
---
-last_updated: 2018-06-04
-type: concepts, reference
stage: Release
group: Release Management
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#designated-technical-writers
diff --git a/doc/user/project/pages/index.md b/doc/user/project/pages/index.md
index eff80a4c9bd..6c3b911d033 100644
--- a/doc/user/project/pages/index.md
+++ b/doc/user/project/pages/index.md
@@ -59,6 +59,7 @@ To update a GitLab Pages website:
| [Explore GitLab Pages](introduction.md) | Requirements, technical aspects, specific GitLab CI/CD configuration options, Access Control, custom 404 pages, limitations, FAQ. |
| [Custom domains and SSL/TLS Certificates](custom_domains_ssl_tls_certification/index.md) | Custom domains and subdomains, DNS records, and SSL/TLS certificates. |
| [Let's Encrypt integration](custom_domains_ssl_tls_certification/lets_encrypt_integration.md) | Secure your Pages sites with Let's Encrypt certificates, which are automatically obtained and renewed by GitLab. |
+| [Redirects](redirects.md) | Set up HTTP redirects to forward one page to another. |
Learn more and see examples:
diff --git a/doc/user/project/pages/introduction.md b/doc/user/project/pages/introduction.md
index a6923779f24..cea6bab1a50 100644
--- a/doc/user/project/pages/introduction.md
+++ b/doc/user/project/pages/introduction.md
@@ -1,6 +1,4 @@
---
-type: reference
-last_updated: 2020-01-06
stage: Release
group: Release Management
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#designated-technical-writers
@@ -36,7 +34,7 @@ If you are using [GitLab Pages on GitLab.com](#gitlab-pages-on-gitlabcom) to hos
- The domain name for GitLab Pages on GitLab.com is `gitlab.io`.
- Custom domains and TLS support are enabled.
- Shared runners are enabled by default, provided for free and can be used to
- build your website. If you want you can still bring your own Runner.
+ build your website. If you want you can still bring your own runner.
## Example projects
@@ -62,13 +60,8 @@ If the case of `404.html`, there are different scenarios. For example:
## Redirects in GitLab Pages
-Since you cannot use any custom server configuration files, like `.htaccess` or
-any `.conf` file, if you want to redirect a page to another
-location, you can use the [HTTP meta refresh tag](https://en.wikipedia.org/wiki/Meta_refresh).
-
-Some static site generators provide plugins for that functionality so that you
-don't have to create and edit HTML files manually. For example, Jekyll has the
-[redirect-from plugin](https://github.com/jekyll/jekyll-redirect-from).
+You can configure redirects for your site using a `_redirects` file. To learn more, read
+the [redirects documentation](redirects.md).
## GitLab Pages Access Control **(CORE)**
diff --git a/doc/user/project/pages/lets_encrypt_for_gitlab_pages.md b/doc/user/project/pages/lets_encrypt_for_gitlab_pages.md
index d86704eb703..708d886b352 100644
--- a/doc/user/project/pages/lets_encrypt_for_gitlab_pages.md
+++ b/doc/user/project/pages/lets_encrypt_for_gitlab_pages.md
@@ -1,7 +1,5 @@
---
description: "How to secure GitLab Pages websites with Let's Encrypt (manual process, deprecated)."
-type: howto
-last_updated: 2019-07-15
---
# Let's Encrypt for GitLab Pages (manual process, deprecated)
diff --git a/doc/user/project/pages/pages_access_control.md b/doc/user/project/pages/pages_access_control.md
index 6fcad0a5357..b6b881b961e 100644
--- a/doc/user/project/pages/pages_access_control.md
+++ b/doc/user/project/pages/pages_access_control.md
@@ -10,7 +10,9 @@ info: To determine the technical writer assigned to the Stage/Group associated w
> - [Introduced](https://gitlab.com/gitlab-org/gitlab-foss/-/issues/33422) in GitLab 11.5.
> - Available on GitLab.com in GitLab 12.4.
-You can enable Pages access control on your project, so that only
+You can enable Pages access control on your project
+if your administrator has [enabled the access control feature](../../../administration/pages/index.md#access-control)
+on your GitLab instance. When enabled, only
[members of your project](../../permissions.md#project-members-permissions)
(at least Guest) can access your website:
diff --git a/doc/user/project/pages/redirects.md b/doc/user/project/pages/redirects.md
new file mode 100644
index 00000000000..ae7b1b4fa6e
--- /dev/null
+++ b/doc/user/project/pages/redirects.md
@@ -0,0 +1,130 @@
+---
+stage: Release
+group: Release Management
+info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/engineering/ux/technical-writing/#designated-technical-writers
+---
+
+# Create redirects for GitLab Pages
+
+> - [Introduced](https://gitlab.com/gitlab-org/gitlab-pages/-/issues/24) in GitLab Pages 1.25.0 and GitLab 13.4.
+> - It's [deployed behind a feature flag](#enable-or-disable-redirects), disabled by default.
+> - To use it in GitLab self-managed instances, ask a GitLab administrator to [enable it](#enable-or-disable-redirects).
+
+CAUTION: **Warning:**
+This feature might not be available to you. Check the **version history** note above for details.
+
+In GitLab Pages, you can [enable](#enable-or-disable-redirects) the redirects feature to configure rules to forward one URL to another using HTTP redirects. GitLab Pages uses
+[Netlify style redirects](https://docs.netlify.com/routing/redirects/#syntax-for-the-redirects-file).
+
+## Supported features
+
+GitLab Pages only supports the
+[`_redirects` plain text file syntax](https://docs.netlify.com/routing/redirects/#syntax-for-the-redirects-file),
+and `.toml` files are not supported.
+
+Redirects are only supported at a basic level, and GitLab Pages doesn't support all
+[special options offered by Netlify](https://docs.netlify.com/routing/redirects/redirect-options/):
+
+| Feature | Supported | Example |
+| ------- | --------- | ------- |
+| Redirects (`301`, `302`) | **{check-circle}** Yes | `/wardrobe.html /narnia.html 302`
+| Rewrites (other status codes) | **{dotted-circle}** No | `/en/* /en/404.html 404` |
+| [Splats](https://docs.netlify.com/routing/redirects/redirect-options/#splats) | **{dotted-circle}** No | `/news/* /blog/:splat` |
+| Placeholders | **{dotted-circle}** No | `/news/:year/:month/:date/:slug /blog/:year/:month/:date/:slug` |
+| Query parameters | **{dotted-circle}** No | `/store id=:id /blog/:id 301` |
+| Force ([shadowing](https://docs.netlify.com/routing/redirects/rewrites-proxies/#shadowing)) | **{dotted-circle}** No | `/app/ /app/index.html 200!` |
+| Domain-level redirects | **{dotted-circle}** No | `http://blog.example.com/* https://www.example.com/blog/:splat 301` |
+| Redirect by country or language | **{dotted-circle}** No | `/ /anz 302 Country=au,nz` |
+| Redirect by role | **{dotted-circle}** No | `/admin/* 200! Role=admin` |
+
+NOTE: **Note:**
+Supported paths must start with a forward slash `/`.
+
+## Create redirects
+
+To create redirects after [enabling](#enable-or-disable-redirects) the feature,
+create a configuration file named `_redirects` in the `public/` directory of your
+GitLab Pages site.
+
+If your GitLab Pages site uses the default domain name (such as
+`namespace.gitlab.io/projectname`) you must prefix every rule with the project name:
+
+```plaintext
+/projectname/redirect-portal.html /projectname/magic-land.html 301
+/projectname/cake-portal.html /projectname/still-alive.html 302
+/projectname/wardrobe.html /projectname/narnia.html 302
+/projectname/pit.html /projectname/spikes.html 302
+```
+
+If your GitLab Pages site uses [custom domains](custom_domains_ssl_tls_certification/index.md),
+no project name prefix is needed. For example, if your custom domain is `example.com`,
+your `_redirect` file would look like:
+
+```plaintext
+/redirect-portal.html /magic-land.html 301
+/cake-portal.html /still-alive.html 302
+/wardrobe.html /narnia.html 302
+/pit.html /spikes.html 302
+```
+
+## Files override redirects
+
+Files take priority over redirects. If a file exists on disk, GitLab Pages serves
+the file instead of your redirect. For example, if the files `hello.html` and
+`world.html` exist, and the `_redirects` file contains the following line, the redirect
+is ignored because `hello.html` exists:
+
+```plaintext
+/projectname/hello.html /projectname/world.html 302
+```
+
+NOTE: **Note:**
+GitLab does not support Netlify's
+[force option](https://docs.netlify.com/routing/redirects/rewrites-proxies/#shadowing)
+to change this behavior.
+
+## Debug redirect rules
+
+If a redirect isn't working as expected, or you want to check your redirect syntax, visit
+`https://[namespace.gitlab.io]/projectname/_redirects`, replacing `[namespace.gitlab.io]` with
+your domain name. The `_redirects` file isn't served directly, but your browser
+displays a numbered list of your redirect rules, and whether the rule is valid or invalid:
+
+```plaintext
+11 rules
+rule 1: valid
+rule 2: valid
+rule 3: error: splats are not supported
+rule 4: valid
+rule 5: error: placeholders are not supported
+rule 6: valid
+rule 7: error: no domain-level redirects to outside sites
+rule 8: error: url path must start with forward slash /
+rule 9: error: no domain-level redirects to outside sites
+rule 10: valid
+rule 11: valid
+```
+
+## Enable or disable redirects
+
+Redirects in GitLab Pages is under development and not ready for production use. It is
+deployed behind a feature flag that is **disabled by default**.
+
+For [Omnibus installations](../../../administration/pages/index.md), define the
+`FF_ENABLE_REDIRECTS` environment variable in the
+[global settings](../../../administration/pages/index.md#global-settings).
+Add the following line to `/etc/gitlab/gitlab.rb` and
+[reconfigure the instance](../../../administration/restart_gitlab.md#omnibus-gitlab-reconfigure).
+
+```ruby
+gitlab_pages['env']['FF_ENABLE_REDIRECTS'] = 'true'
+```
+
+For [source installations](../../../administration/pages/source.md), define the
+`FF_ENABLE_REDIRECTS` environment variable, then
+[restart GitLab](../../../administration/restart_gitlab.md#installations-from-source):
+
+```shell
+export FF_ENABLE_REDIRECTS="true"
+/path/to/pages/bin/gitlab-pages -config gitlab-pages.conf
+```