2016-10-21 4 views
2

Я пытаюсь переписать URL в WordPress веб-сайт работает Nginx, так что последний подкаталог превращается в GET-параметра:Nginx: как мне переписать подкаталог URL-адреса в параметр запроса?

http://mydomain/property/aid/1234/ к http://mydomain/property/?aid=1234/

Я попытался с add_rewrite_rule в WordPress, но он не сделал поскольку он не создал новую запись $_GET.

Тогда я попробовал следующее правило: Nginx

rewrite ^(/property/.*)/aid/(.*)$ /$1/?aid=$2 break; 

, который, кажется, не имеют никакого эффекта.

Любые предложения?

ответ

0

Предположим, что корень документа равен /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, например.

+0

Спасибо Руслан, отлично работает с вашим кодом –