Что я пытаюсь сделать:
Преобразовать
/posts/?post={randomnumber-atoF}
or
/posts?post=120430awasdfwasfw
в
/posts/120430awasdfwasfw
мой блок сервера (пока что)
server {
listen 80 default_server;
listen [::]:80 default_server;
root /forum;
index index.php;
server_name forum.example.net;
location / {
try_files $uri $uri/ =404;
}
# pass PHP scripts to FastCGI server
#
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
Сервер получает URL, переданный от другого прокси Nginx (другой удаленный сервер). (и этот сервер имеет SSL, порт 443)
Пункты, которые я пробовал:
rewrite ^/posts/index.php /posts/$arg_post permanent;
редактировать:
извините, я не сказал, что запрос идет в индекс, так как пост - это запрос в базу данных. Я хочу сделать так, чтобы вам не нужен был запрос, а просто перейти к {номер поста}
Заголовок сообщения может быть «преобразовать / перезаписать URL-адрес в запрос». В любом случае, согласно редактированию и комментариям, rewrite ^ / posts / (?
может работать. Нет необходимости использовать постоянный флаг
для перезаписи
. Если вы используете постоянный
, пользователь будет перенаправлен.
server {
listen 80 default_server;
listen [::]:80 default_server;
root /forum;
index index.php;
server_name forum.example.net;
rewrite ^/posts/(?<id>[a-zA-Z0-9]+)$ /posts/?post=$id;
location / {
try_files $uri $uri/ =404;
}
# pass PHP scripts to FastCGI server
#
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}