Назад | Перейти на главную страницу

Переписать в корень домена только в nginx

У меня есть сервер YOURLS для размещения коротких URL-адресов моей компании, чтобы мы могли предоставлять короткие URL-адреса нашим клиентам.

Я использую nginx, а в качестве корня домена, если они не используют правильный короткий URL-адрес, я хочу перенаправить на наш веб-сайт. Таким образом, example.com/218a перенаправляет на то, на что указывает этот короткий URL, а example.com переходит на наш сайт @ domain.com.

Прямо сейчас я использую страницу index.html только с мета-обновлением для перенаправления, но я думал, что смогу сделать это в конфигурации nginx, и это, вероятно, будет лучше.

Может ли кто-нибудь помочь мне правильным способом, если это возможно, сделать это на уровне сервера вместо использования мета-обновления?

Я пробовал несколько примеров из того, что нашел здесь, но ни один из них, похоже, не работает.

Вот мой файл конфигурации для справки.

server {
    server_name www.domain.com;
    return 301 $scheme://domain.com$request_uri;
}

server {
    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;

    root /usr/share/nginx/html;
    index index.html index.htm index.php;

    # Make site accessible from http://localhost/
    server_name http://domain.com;

    location / {
        #YOURLS
        try_files $uri $uri/ /yourls-loader.php;
    }

    location ~ \.php$ {
        try_files $uri =404;
        include fastcgi_params;
        fastcgi_pass php5-fpm-sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_intercept_errors on;
    }
}

Прежде всего, server_name директива недействительна в вашем основном server блок. server_name содержит только доменное имя, а не другие части URL-адреса.

Чтобы ответить на ваш вопрос, добавьте следующую конфигурацию:

location = / {
    rewrite ^ http://domain.com permanent;
}

Это делает все URI, которые соответствуют точному / перенаправление на http://domain.com