#php #wordpress #nginx #ngx-http-rewrite-module
#php #wordpress #nginx #ngx-http-rewrite-module
Вопрос:
Я пытаюсь переписать URL на веб-сайте WordPress, на котором работает Nginx, так, чтобы последний подкаталог был преобразован в GET-parameter:
http://mydomain/property/aid/1234/ Для http://mydomain/property/?aid=1234/
Я пробовал с add_rewrite_rule
в WordPress, но это не сработало, поскольку не создало новую $_GET
запись.
Затем я попробовал следующее правило Nginx:
rewrite ^(/property/.*)/aid/(.*)$ /$1/?aid=$2 break;
который, похоже, вообще не имеет никакого эффекта.
Есть предложения?
Ответ №1:
Предположим, что корень документа /www/yourproject/public
. Тогда конфигурация для PHP-FPM может выглядеть следующим образом:
rewrite "^/property/aid/([0-9] )$" /property/?aid=$1 break;
location /property/ {
root /www/yourproject/public;
fastcgi_pass unix:/tmp/php-fpm-yourproject.sock;
fastcgi_index index.php;
include fastcgi_params;
}
В этой конфигурации запросы обрабатываются /www/yourproject/public/property/index.php
.
Пример index.php
<?php
var_dump($_GET);
Пример вывода для /property/aid/1234
array(1) {
["aid"]=>
string(4) "1234"
}
Вы можете заменить, например, директивы fastcgi_pass
и fastcgi_index
на proxy_pass
.