Nginx переписывают правило для файла в папке, не работающей

Моя проблема кажется тривиальной, но после нескольких часов тестирования, исследования и игры я, может казаться, не добираюсь, этот простой nginx переписывают функцию для работы.

Существуют, несколько переписывают, нам нужно, у некоторых будет несколько параметров, но я не могу даже заставить этот простой 1 параметр текущий URL изменяться вообще к желаемому.

Текущий: website.com/public/viewpost.php?id=post-title

Желаемый: website.com/public/post/post-title

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

Для тестирования, прежде чем мы запускаемся, мы просто использовали простой порт на сервере. Вот тот раздел.

# Listen on port 7774 for dev test
server {
    listen          7774;
    server_name     localhost;
    root        /usr/share/nginx/html/paa;
    index       index.php home.php index.html index.htm /public/index.php;

location ~* /uploads/.*\.php$ {
    if ($request_uri ~* (^\/|\.jpg|\.png|\.gif)$ ) {
      break;
    }
        return 444;
    }


    location ~ \.php$ {
        try_files $uri @rewrite =404;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_pass php5-fpm-sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_intercept_errors on;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    }

location @rewrite { 
    rewrite ^/viewpost.php$ /post/$arg_id? permanent;
}

}

Я попробовал бесчисленные попытки такой как выше @rewrite и более простой:

location / {
    rewrite ^/post/(.*)$ /viewpost.php?id=$1 last;
}

    location ~ \.php$ {
    try_files $uri =404;
    fastcgi_index index.php;
    include fastcgi_params;
    fastcgi_pass php5-fpm-sock;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_intercept_errors on;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    }

Я, может казаться, не заставляю ничего работать вообще, я попытался изменить местоположение, которое попробовали несколько правил...

Скажите мне, что я сделал неправильно.

[перемещенный от переполнения стека согласно ультрасовременному предложению]

0
задан 24 April 2015 в 13:02
1 ответ

Во втором коде вы заменили местоположение на:

location /public/post/ {
    rewrite ^/public/post/(.+) /public/viewpost.php?id=$1;
}
0
ответ дан 5 December 2019 в 13:48

Теги

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