Назад | Перейти на главную страницу

nginx переписывает ссылку с помощью wordpress

У меня не работает ссылка в моем блоге WP, который находится на этом маршруте

www.site.com/wp-content/plugins/download-monitor/download.php?id=1

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

  rewrite ^(/wp-content/plugins/download-monitor/download.php?id=1)(.*)$   http://link.com/my.pdf$2 permanent;

Из вашего комментария вы пробовали:

location = /wp-content/plugins/download-monitor/download.php?id=1 { 
    return 301 link.com/my.pdf;
}

Это не сработает, потому что location Правило не может проверить компонент строки запроса URL-адреса.

В if блок можно использовать для простых тестов, таких как проверка значения $arg_id который установлен на значение id параметр в строке запроса. Например:

location = /wp-content/plugins/download-monitor/download.php {
    if ($arg_id = 1) {
        return 301 link.com/my.pdf;
    }
    fastcgi_pass ...;
    ...
}

Обратите внимание, что location блок выше будет обрабатывать любой URL, указывающий то же самое download.php скрипт (то есть со значениями id Кроме как 1). В fastcgi директивы дублированный от твоего location ~ \.php$ блок для выполнения download.php скрипт обычно со значениями id Кроме как 1.

Видеть этот и этот для большего.