Рубрики
Uncategorized

Переписать правила в Nginx

Директива возвращения и перезаписи Директивы — два широко используемых метода для перезаписи URL-адресов, перезапись директивы более мощной. Прочитайте сообщение, чтобы узнать, почему и как переписать. Помечено Nginx, WebDev, Devops.

По Ritu Chaturvedi

Переписать правила Изменить часть или целый URL. Это сделано по двум причинам. Во-первых, чтобы сообщить клиентам о перемещении ресурсов и во-вторых, контролировать поток в Nginx. Два метода общего назначения, используемые широко для перезаписи URL-адреса, являются вернуть Директива и переписать Директива. Из них директива перезаписи более мощная. Давайте обсудим, почему это так, а также как переписать URL.

Иметь лучше Понимание Nginx Убедитесь проще следовать в этом блоге.

Вернуть директива

Вернуть Это самый простой способ переписать URL-адрес, объявленный на сервере или локальной машине.

Вернуть на сервере:

Предположим, что ваш сайт мигрируется на новый домен, и все существующие URL должны быть перенаправлены здесь; Запустите следующий код, чтобы направить любой новый запрос на ваш сайт.

Это направляет все запросы, которые ударили www. . предыдущийДом . COM к www. . ustrectdomain Отказ компенсация www. . предыдущий . COM Отправит ошибку «301», как только приведен вышеуказанный код, и создается новый запрос доступа. Две переменные, Схема $ и $ request_uri, Получите данные из входного URL. « Слушай 80 ‘ Указывает, что блок применяется как к запросам HTTP, так и для HTTPS.

Вернуть в местном

Если вы хотите перенаправить страницы на месте полного домена, вы можете использовать вернуть Директива под блоком местоположения.

Знание Как создать nginx Rewrite Правила могут сэкономить много ваших усилий и времени.

Переписать Директива

Так же, как вернуть Директива, Директива перезаписи также может действовать как на сервере, так и в локальном. По сравнению с вернуть Директива, переписать Директива может обрабатывать сложные замены URL. Ниже приведен синтаксис переписать :

Regex является регулярным выражением, которое соответствует против входящего УРИ.

Замена_url это строка, используемая для изменения запрошенного URI.

Значение Флаг решает, необходим ли еще одно перенаправление или обработка.

Статическая страница переписать

Предположим, вы хотите перенаправить страницу HTTPS. :// пример . COM/Учебник к HTTPS. :// пример . com/new_page. . Директива будет:

Линия Расположение =/Учебное пособие Определяет, что любая идентификация учебника должна быть заменена. переписать Команда говорит заменить фразу в нотацию ^ и $ с ‘ new_page.html ‘ а затем сломайте команду. Обозначение ‘? называется не жадным модификатором, после чего поиск шаблона остановлен.

Динамическая страница переписать

Подумайте о переписывании URL HTTPS. :// www. . образец . com/user.php? ID = 11 к HTTPS. :// www. . образец . COM/USER/11 . Здесь то должен быть заменен. Используя метод статического перезаписи, потребует бы написать команду Rewrite 10 раз. Вместо этого давайте сделаем это за один ход.

Линия Расположение =/user.php. Запрашивает Nginx проверить на наличие префикса/пользователя. Как сказано ранее, Nginx будет искать фразы между начальными и конечными обозначениями как ^ и $ вместе с не жадным? Модификатор. Фраза в нашем примере является ряд пользователей. Он упоминается внутри квадратных кронштейнов как [0-9] +. Задняя ссылка в этом выражении отмечается в скобках и упоминается символом $ 1. Итак, для нашего примера перезапись произойдет для всех пользователей автоматически.

Один специальный случай под динамическим ссылкой — это несколько обратных ссылок.

Теперь мы обсудили, как писать правила перезаписи для простых и сложных URL-адресов.

Понять подробную работу правил переписания через некоторые Примеры Обработка различных сценариев.

Сравнение директива

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

Директива возврата

  • Это просто в использовании и понимать.
  • Его можно использовать как на контекстах сервера, так и на местоположении.
  • Он явно упоминает исправленный или обновленный URL, чтобы клиент мог использовать их в будущем.
  • Обратные директивы могут также включать несколько ошибок кодов.
  • Для кодов 301, 302, 303 и 307 параметры URL определяют URL-адрес перенаправления.

возврат (301 | 302 | 303 | 307) URL;

  • Для других кодов текст должен быть явно упомянут пользователем.

Возврат (1xx | 2xx | 4xx | 5xx) [«текст»];

Например: Возврат 401 «Доступ запрещен, потому что токен истек или недействителен»;

  • Эта директива может использоваться в сценариях, когда возвратный URL правильный для блока сервера, так и для блока местоположения, и переписанный URL-адрес построен с переменными Nginx.

Переписать Директива

  • Он может вместить более сложные модификации URL-модификации, когда требуется захватывающие элементы без переменных Nginx или обновления в элементах на пути.
  • Его можно использовать как на контекстах сервера, так и на местоположении.
  • Директива перезаписи может вернуться только кода 301 или 302. Чтобы приспособиться к другим кодам, явно добавьте директиву возврата после переписывающей директивы.
  • Это может не отправлять детали перенаправления клиенту.
  • Обработка запроса NGINX не остановлена.

Вывод

вернуть и переписать Директивы могут использоваться для перенаправления URL-адресов как в сервере, так и на определенных условиях. Хотя Директива возвращения намного проще, Директива перезаписи широко используется, поскольку она также может обрабатывать сложные модификации/обновления URL-адресов.

Оригинал: «https://dev.to/devgraph/rewrite-rules-in-nginx-1d6e»