nginx: Слишком многие перенаправляют

Если ваша проблема с существующими ответами в том, что что они не находят слов, состоящих только из заглавных букв (без цифр), тогда мы можем адаптировать ответ Гнука следующим образом:

awk '$1 ~ /^[[:upper:]0-9]+$/ {print $1}'

или

awk '$1 ~ /^[[:upper:][:digit:]]+$/ {print $1}'

Это отличается от его решения тем, что

  • Положив цифры ([0-9] или [:цифра:]) в скобки с прописными буквами ([:upper:]), мы требуем только, чтобы каждый соответствующий символ это либо заглавная буква, либо цифра, где текущий ответ Gnouc требует по крайней мере по одному.
  • Добавив $, мы убедимся, что первое слово целиком состоит из заглавных букв и/или цифр.  Без нее , , Таблица , Pin и Analog соответствовали бы потому что они начинаются с большой буквы.

Это будет соответствовать обычному номеру (например, 612). если это первое "слово" (т.е. первая последовательность непустых символов) в строке. Чтобы избежать этого, сделайте

awk '$1 ~ /^[[:upper:]][[:upper:]0-9]*$/ {print $1}'

или

awk '$1 ~ /^[[:upper:]][[:upper:][:digit:]]*$/ {print $1}'

, которые требуют, чтобы "слово" в начиналось с буквы.

1
22.09.2014, 14:42
2 ответа

Попробуйте поставить

return          301 $scheme://test.example.org/dashboard;

внутри

location / {
}
1
27.01.2020, 23:52

Вот как я это делаю,

location / {

    index index.php index.html index.htm;
    try_files $uri $uri/ /index.php?$args @goto_dashboard;
}

location @goto_dashboard {
    return 301 http://xxx/dashboard;
}
0
27.01.2020, 23:52

Теги

Похожие вопросы