Тонкий NGINX переписывающий URL, чтобы выглядеть лучше - PullRequest
0 голосов
/ 07 апреля 2020

Я использую тонкий nginx. Сайт живой, бродячей усадьбы. Пример моего URL:

myurl.com /? Page = admins <- некрасиво </p>

Я хочу, чтобы это выглядело так

myurl.com / page / admins <- удобный </p>

myurl.com / page / orders

просто хотите удалить? и замените = на /

Я пробовал это и многие другие вещи, но пока какое-то решение не найдено (я совершенно новичок в этом, поэтому я немного растерялся)

Мой файл etc / nginx / sites-available / myurl.com на данный момент:

    server {
    listen 80;
    listen 443 ssl http2;
    server_name .myurl.com;
    root "/home/vagrant/code/admin";
    index index.html index.htm index.php api.php;
    charset utf-8;

    location / {
        try_files $uri $uri/ /api.php$is_args$args;
    }


    location = /favicon.ico { access_log off; log_not_found off; }
    location = /robots.txt  { access_log off; log_not_found off; }

    access_log off;
    error_log  /var/log/nginx/myurl.com-error.log error;

    sendfile off;

    client_max_body_size 100m;

    location ~ \.php {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;


        fastcgi_intercept_errors off;
        fastcgi_buffer_size 16k;
        fastcgi_buffers 4 16k;
        fastcgi_connect_timeout 300;
        fastcgi_send_timeout 300;
        fastcgi_read_timeout 300;
}
                                                                                                                                 location ~ /\.ht {
        deny all;
    }



    ssl_certificate     /etc/nginx/ssl/myurl.com.crt;
    ssl_certificate_key /etc/nginx/ssl/myurl.com.key;
}

server {
    rewrite ^/page/(.*)$ /?page=$1 last;
    location / {
        proxy_pass https://myurl.com;
    }
}

Последний бит кода - моя текущая попытка (предложено Робертом). Помощь будет принята с благодарностью, так как я застрял на этом выпустить в течение нескольких часов и изучить почти все доступные ресурсы!

1 Ответ

0 голосов
/ 08 апреля 2020

Предполагая, что вы хотите, чтобы ваши пользователи взаимодействовали с приложением, используя https://myurl.com/page/admins, переписывание будет выглядеть примерно так:

server {
    rewrite ^/page/(.*)$ /?page=$1 last;
    location / {
        proxy_pass https://1.2.3.4;
    }
}

Для получения дополнительной информации посмотрите одно из следующих действий

...