У меня есть это правило, которое работает, как и ожидалось, в .htaccess с Apache.
RewriteRule ^jobs/([A-Za-z0-9_]+)/?([A-Za-z0-9_-]+)?$ index.php?link1=jobs&page=$1&resource_id=$2 [QSA]
И он перепишет этот URL-адрес http://domain.test/jobs/createcv, чтобы PHP $_GET выглядел так:
Теперь я хочу добиться того же с NGINX для того же URL, но это не работает.
Правило: rewrite ^/jobs/([A-Za-z0-9_]+)/?([A-Za-z0-9_-]+)$ /index.php?link1=jobs&page=$1&resource_id=$2;
Но вместо этого у меня есть этот странный результат
array(3) { ["link1"]=> string(7) "jobs" ["page"]=> string(7) "createc" ["resource_id"]=> string(1) "v" }
заранее спасибо
Правило перезаписи было нарушено во время перехода с Апачи на Nginx, так как в нем отсутствует вопросительный знак после второй группы захвата.
Добавьте ?
в правило перезаписи, и оно должно работать:
location /jobs {
rewrite ^/jobs/([A-Za-z0-9_]+)/?([A-Za-z0-9_-]+)?$ /index.php?link1=jobs&page=$1&resource_id=$2;
}
Если вторая группа не является обязательной, то v
из createcv
не будет случайно «съеден», как вы описали.