Подскажите пожалуйста, как подменить GET параметры в URL?
Есть например такой URL на сайте с GET ?tag=river
https://mydomain.ru/category/?tag=river
Как такие URL делать такими?
https://mydomain.ru/category/river/
Убирать эти символы ?tag=
Пробовал по разному,
if ($arg_tag) {
rewrite ^/(.*)$ /$arg_tag/? permanent;
}
И не работает никак, может не в то место вставляю
Сайт на VPS, NGINX.
Вот конфиг (ip и домен изменены для примера)
Как правильно написать правило что бы решить мою задачу? И В какое место в конфиге его вставить?
server {
server_name mydomain.ru;
listen 80.90.191.111:443 ssl ;
ssl_certificate "/var/www/httpd-cert/mydomain.ru_2023-06-16-15-12_04.crt";
ssl_certificate_key "/var/www/httpd-cert/mydomain.ru_2023-06-16-15-12_04.key";
charset utf-8;
gzip on;
gzip_proxied expired no-cache no-store private auth;
gzip_types text/css text/xml application/javascript text/plain application/json image/svg+xml image/x-icon;
gzip_comp_level 7;
set $root_path /var/www/mysite_domain_ru_usr/data/www/mydomain.ru;
root $root_path;
disable_symlinks if_not_owner from=$root_path;
location / {
index index.php index.html;
if (!-e $request_filename) {
rewrite ^/(.*)$ /index.php?q=$1 last;
}
}
# не работает вариант
if ($arg_tag) {
rewrite ^/(.*)$ /$arg_tag/? permanent;
}
location ~ \.php$ {
include /etc/nginx/fastcgi_params;
fastcgi_pass unix:/var/run/mydomain.ru.sock;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT $realpath_root;
}
location ~ /\.ht {
deny all;
}
location ~* ^/core/ {
deny all;
}
location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpeg|avi|zip|gz|bz2|rar|swf|ico|7z|doc|docx|map|ogg|otf|pdf|tff|tif|wav|webp|woff|woff2|xls|xlsx)$ {
try_files $uri $uri/ /index.php?$args;
expires 365d;
}
location @fallback {
fastcgi_pass unix:/var/run/mydomain.ru.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
include "/etc/nginx/fastpanel2-sites/mysite_domain_ru_usr/mydomain.ru.includes";
include /etc/nginx/fastpanel2-includes/*.conf;
error_log /var/www/mysite_domain_ru_usr/data/logs/mydomain.ru-frontend.error.log;
access_log /var/www/mysite_domain_ru_usr/data/logs/mydomain.ru-frontend.access.log;
}
server {
server_name mydomain.ru;
listen 80.90.191.111:80;
return 301 https://$host$request_uri;
error_log /var/www/mysite_domain_ru_usr/data/logs/mydomain.ru-frontend.error.log;
access_log /var/www/mysite_domain_ru_usr/data/logs/mydomain.ru-frontend.access.log;
}
server {
server_name www.mydomain.ru ;
listen 80.90.191.111:80;
listen 80.90.191.111:443 ssl ;
ssl_certificate "/var/www/httpd-cert/mydomain.ru_2023-06-16-15-12_04.crt";
ssl_certificate_key "/var/www/httpd-cert/mydomain.ru_2023-06-16-15-12_04.key";
return 301 $scheme://mydomain.ru$request_uri;
error_log /var/www/mysite_domain_ru_usr/data/logs/mydomain.ru-frontend.error.log;
access_log /var/www/mysite_domain_ru_usr/data/logs/mydomain.ru-frontend.access.log;
}