Правила перезаписи Nginx - многопозиционный PHP

Один упал, один остался! Я полностью понимаю все, что было не так с моей конфигурацией раньше, и хотел бы еще раз поблагодарить Джемаля на Stack Overflow. В / location / теперь отображается index.php.

Новая проблема заключается в правилах перезаписи. В настоящее время они установлены глобально, и каждое местоположение должно делать одно и то же (они дублируют внешние интерфейсы PHP, но у одного есть ограниченный доступ к определенным вещам).

В настоящий момент работает основной домен domain.com, но mydomain.com/ test загружает основной PHP, но не передает данные из перезаписываемых файлов. Я' Я нашел способ заставить его работать с пробными файлами, но я изо всех сил пытаюсь заставить его работать, используя совет regex , найденный здесь .

В существующем виде без попытки следующее приводит к ошибкам, связанным с невозможностью найти raw_data или general_data в nginx, несмотря на то, что эти файлы существуют, поэтому я могу только предположить, что это должны быть правила перезаписи.

Я клонировал существующую перезапись rules и снабдил их префиксом / test2 /, но он все еще не может их найти.

2018/02/27 13:37:46 [ошибка] 31485 # 31485: * 49483 open ()

"/var/www/html/test2/general_data" failed (2: No such file or
directory), client: X.X.X.X, server: mydomain.co.uk, request: "POST
/test/weather_data?cell HTTP/1.1", host: "mydomain.co.uk", referrer:
"https://mydomain.co.uk/test2/" 2018/02/27 13:37:46 [error]
31485#31485: *49546 open() "/var/www/html/test/raw_data" failed (2: No
such file or directory), client: X.X.X.X, server: my domain.co.uk,
request: "POST /test/raw_data HTTP/1.1", host: "mydomain.co.uk",
referrer: "https://mydomain.co.uk/test2/"

это ошибка, которая В любом случае приведу меня к заключению.

Вот моя текущая конфигурация соответствующие части -

}server {

    rewrite ^/raw_data$ /raw_data.php?$1 last;
    rewrite ^/test_data$ /test_data.php?$1 last;
    rewrite ^/motd_data$ /motd_data.php?$1 last;
    rewrite ^/(.*)map.common.js$ /static/js/map.common.php last;
    rewrite ^/general_data$ /general_data.php?$1 last;

    rewrite ^test2/raw_data$ /test2/raw_data.php?$1 last;
    rewrite ^test2/test_data$ /test2/test_data.php?$1 last;
    rewrite ^test2/motd_data$ /test2/motd_data.php?$1 last;
    rewrite ^test2/(.*)map.common.js$ /PMSFE/static/js/map.common.php last;
    rewrite ^test2/general_data$ /PMSFE/general_data.php?$1 last;



    location / {
    include /etc/nginx/mime.types;
        index index.php index.html index.htm;
        location ~ \.php$ {
            try_files $uri =404;
            fastcgi_pass unix:/run/php/php7.0-fpm.sock;
            fastcgi_index index.php;
            fastcgi_param HTTP_IF_NONE_MATCH $http_if_none_match;
            fastcgi_param HTTP_IF_MODIFIED_SINCE $http_if_modified_since;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
      }
    }

    location /test2 {
    include /etc/nginx/mime.types;
    root /var/www/html/;
        index index.php index.html index.htm;
        location ~ \.php$ {
            try_files $uri =404;
            fastcgi_pass unix:/run/php/php7.0-fpm.sock;
            fastcgi_index index.php;
            fastcgi_param HTTP_IF_NONE_MATCH $http_if_none_match;
            fastcgi_param HTTP_IF_MODIFIED_SINCE $http_if_modified_since;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
      }
    }

Любые советы о том, как я могу заставить это работать, были бы очень признательны, я впервые использую Linux в в общем, не говоря уже о попытках провести что-то существенное, К сожалению, примеры nginx, которые вы найдете, настолько разные, что трудно понять, что применимо к вашей конкретной ситуации или нет.

Я попытался включить правила перезаписи в каждое место, как я видел в другом сообщении, но это сломало страницу mydomain.co.uk с той же ошибкой, что и новый mydomain.co.uk/test2/

0
задан 27 February 2018 в 16:35
1 ответ

Так глупо с моей стороны. Один / короткий на мои перезаписи.

rewrite ^/test2/raw_data$ /test2/raw_data.php?$1 last;
rewrite ^/test2/test_data$ /test2/test_data.php?$1 last;
rewrite ^/test2/motd_data$ /test2/motd_data.php?$1 last;
rewrite ^/test2/(.*)map.common.js$ /PMSFE/static/js/map.common.php last;
rewrite ^/test2/general_data$ /PMSFE/general_data.php?$1 last;

теперь работает!

0
ответ дан 5 December 2019 в 06:24

Теги

Похожие вопросы