Запустите другое приложение, когда есть URL-адрес со знаком вопроса и равен реакции nginx

У меня есть 2 приложения для сборки реакции, я хочу запускать одно из них только тогда, когда URL-адрес совпадает с www.example.com/inventory/?id=... мой конфиг nginx

server {
listen 80 default_server;
    listen [::]:80 default_server;
    server_name example.com www.example.com;
return 301 https://example.com$request_uri;
}

server {
listen 443 ssl default_server;

index index.html;

ssl on;
ssl_certificate /etc/ssl/example.com.crt;
ssl_certificate_key /etc/ssl/example.com.key;
ssl_session_cache shared:SSL:10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

    root /var/www/example.com/;

location / {
    root /var/www/example.com/public/admin;     
    try_files $uri $uri/ =404;

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.0-fmp.sock;
    }
}

    location /inventory/?id= {
    root /var/www/example.com/public/inventory;     
    try_files $uri $uri/ =404;
}

Я получаю ошибку 404 nginx, что я делаю не так?

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
1
0
21
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Строка запроса не является частью нормализованный URI, используемой для сопоставления с оператором location или rewrite.

Ваш блок местоположения может соответствовать всем URI, начинающимся с /inventory/, но вам нужно будет использовать блок if, чтобы отклонять любые запросы без соответствующего аргумента. См. это предостережение об использовании if.

Например:

location /inventory/ {
    if ($arg_id = "") { return 404; }

    root /var/www/example.com/public;
    try_files $uri $uri/ =404;
}

Обратите внимание, что путь к файлу формируется путем объединения значения директивы root с URI, поэтому, если вы не хотите включать в путь два каталога inventory, он также не должен отображаться в операторе root. Подробнее см. этот документ.

на данный момент он не работает со второй локации и выдает ошибку 404 и проблема в том, что на моем фронтенде у меня есть маршрут с inventory/:id , но без вопросительного знака и строки ID, будет ли работать маршрут правильно?

Sined4ik 19.06.2019 11:35

Другие вопросы по теме