2014-09-10 6 views
0

Всякий раз, когда это бот, я хотел бы добавить один параметр запроса в конце URL-адреса в nginx.Nginx: Как добавить один параметр запроса

Так что URL-адрес, такие как https://videomail.io/11e4-38ba-b1a12cc0-8849-cbb56781aee9/ станет https://videomail.io/11e4-38ba-b1a12cc0-8849-cbb56781aee9/?crawl=1

Или без косых черт в конце https://videomail.io/11e4-38ba-b1a12cc0-8849-cbb56781aee9 приведет к https://videomail.io/11e4-38ba-b1a12cc0-8849-cbb56781aee9?crawl=1

Если параметр crawl уже существует, никаких изменений не требуется. Как я могу это сделать в nginx?

Я пытался с этим, но это не сработало

if ($crawling = 1) { 
    rewrite ^(.*)$ $1?crawl=1? break; 
} 

Любые подсказки?

ответ

1

Я думаю, что вам нужно изменить так:

if ($arg_crawl = 1){ 
     rewrite ^(.*)$ $1?crawl=1 break; 
} 

Nginx не surport, чтобы проверить, существует ли в качестве параметра, если вы хотите заархивировать цели, вы можете попробовать openresty, использовать некоторый Lua код сделай это; http://wiki.nginx.org/HttpLuaModule basiclly вот так: set_by_lua $ crawl 'if ngx.var.crawl == nil then return 1 else return 0 end';

if ($crawl = 1){ 
    rewrite ^(.*)$ $1?crawl=1 break; 
} 
if ($crawl =0){ 
    set 
} 
+0

спасибо, это сработало! –

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