2015-08-05 2 views
0

Его очень простая вещь, которую мне нужно сделать, но я не могу изобразить этот.Nignx переписать шаблон в поисковом запросе?

я следующее правило в моем nginx.conf

location ^/search { 
     #try_files index.php?search=$1 last; 
     rewrite ^/search/(.*)/ index.php?search=$1; 
     #rewrite ^/search/([^/]+)/page/([^/]+)/?$ /index.php?search=$1&page=$2; 
    } 

    location ^/article { 
     rewrite ^/article/([^/]+)/([^/]+)/$ /index.php?layout=article&id=$1; 
    } 

    location ^/images { 
     rewrite ^/images/([^/]+)$ /images/$1 break; 
     rewrite ^/images/([^/]+)/([^/]+)$ /images/$1/$2 break; 
    } 

    location ^/css { 
     rewrite ^/css/([^/]+)$ /css/$1 break; 
     rewrite ^/css/([^/]+)/([^/]+)$ /css/$1/$2 break; 
    } 

    location ~* ^/(css|img|js|flv|swf|download)/(.+)$ { 
     root $root_path; 
    } 

    location ~ /\.ht { 
     deny all; 
    } 

    location ~ \.php$ { 
      try_files $uri =404; 
      fastcgi_split_path_info ^(.+\.php)(/.+)$; 
      fastcgi_pass 127.0.0.1:9000; 
      fastcgi_index index.php; 
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
      include /etc/nginx/fastcgi_params; 
    } 

в основном все, что я хочу сделать, это матч ниже запрос на поиск этого выше.

example.com/search-term1/ 
or 
example.com/search term/ 
or 
example.com/search/search-term1/ 
or 
example.com/search/search-term1/page/1/ 

над шаблонами url Как я могу это сделать? выше правило дает мне ошибку 500 Внутренняя ошибка сервера.

в Nginx журнал я получаю следующий как

2015/08/05 12:56:39 [error] 11136#0: *2 could not find named location "@rewrite", client: 202.172.107.194, server: example.com, request: "GET /search/search-term1/page/1/ HTTP/1.1", host: "example.com" 
+0

Показать полную конфигурацию. Также вы добавляете флаг '~' или удаляете '^' в директиве 'location'. –

ответ

0

я исправила эту проблему, перемещая их из блока местоположения и помещая их непосредственно в блок сервера.

Смежные вопросы