opnform-host-nginx/docs/configuration/subdomain-redirect.mdx

103 lines
3.2 KiB
Plaintext

---
title: Subdomain Redirect
description: Hide OpnForm's public pages by redirecting users to your main website
---
The `NUXT_PUBLIC_ROOT_REDIRECT_URL` environment variable allows you to "hide" OpnForm's public pages (landing page, integrations page, etc.) by redirecting users to your main website or any other destination when they access certain routes.
## Use Case
This feature is particularly useful when you're running OpnForm on a subdomain (e.g., `forms.yourdomain.com`) and want to:
- Hide the default OpnForm landing page and branding
- Prevent users from discovering your form creation interface
- Redirect visitors to your main website instead
- Keep only the essential form and admin functionality accessible
## How It Works
When `NUXT_PUBLIC_ROOT_REDIRECT_URL` is set, OpnForm will permanently redirect (301) users visiting these routes:
- **Root path** (`/`) - The landing page
- **Integrations page** (`/integrations`) - The integrations showcase
- **Any non-existent pages** (404 errors) - Undefined routes
### What Still Works
The following routes remain fully accessible and will **NOT** be redirected:
- **Form URLs**: `forms.yourdomain.com/forms/my-form` ✅
- **Admin login**: `forms.yourdomain.com/login` ✅
- **Admin dashboard**: `forms.yourdomain.com/home` ✅
- **All admin pages**: Settings, workspaces, templates, etc. ✅
## Configuration
### Environment Variable Setup
Add this to your **client** `.env` file (located in the `client` directory):
```bash
NUXT_PUBLIC_ROOT_REDIRECT_URL=https://yourdomain.com
```
### Example Scenarios
**Scenario 1: Redirect to main website**
```bash
NUXT_PUBLIC_ROOT_REDIRECT_URL=https://mycompany.com
```
- Visiting `forms.mycompany.com` → redirects to `https://mycompany.com`
- Visiting `forms.mycompany.com/forms/contact` → works normally ✅
**Scenario 2: Redirect to specific landing page**
```bash
NUXT_PUBLIC_ROOT_REDIRECT_URL=https://mycompany.com/contact
```
- Visiting `forms.mycompany.com` → redirects to `https://mycompany.com/contact`
**Scenario 3: Redirect to documentation**
```bash
NUXT_PUBLIC_ROOT_REDIRECT_URL=https://docs.mycompany.com
```
## User Experience
### For Form Respondents
- Can access shared forms normally via direct links
- If they accidentally visit the root domain, they're redirected to your main site
- No exposure to OpnForm branding or interface
### For Administrators
- Can still access the admin panel via `/login`
- All admin functionality remains fully accessible
- Forms can be managed and created as usual
## Implementation Notes
- The redirect is a **permanent redirect** (HTTP 301)
- The redirect happens on the client-side (Nuxt)
- You must recreate your Docker containers after changing this environment variable
- The URL should include the protocol (`https://` or `http://`)
## Updating the Configuration
If you're using Docker, remember to recreate your containers after changing this environment variable:
```bash
docker compose down ui
docker compose up -d ui
```
<Warning>
A simple `docker compose restart` will not reload the new environment
variable. You must use `down` and `up` to recreate the container.
</Warning>{" "}