На самом деле, я раньше не обращал внимания на возврат и переписывание, потому что все они используют сценарии, запускаемые одним щелчком мыши, я использую любые сценарии, которые используются, я узнал о них только после перехода к доменному имени сертификата SSL в последние несколько дней.
В Nginx для перенаправления запросов используются и return, и rewrite, но различия всё равно есть, и методы записи тоже разные.
Если требуется только простое перенаправление, рекомендуется использовать возврат, а если требуется более сложная логика перезаписи URI, вы можете использовать перезапись.
Основной метод написания правила возврата:
return [код ответа HTTP] [URL];
Например, способ выполнить постоянное перенаправление (301):
return 301 http://example.com/new-url;
Основной метод записи перезаписи заключается в следующем:
rewrite [регулярное выражение] [адрес назначения] [параметры];
Например, способ перезаписи всех запросов к файлу PHP:
rewrite ^(.*)$ /index.php?$query_string last;
здесь ^(.*)Это регулярное выражение /index.php?query_string это целевой адрес, последний это опция, указывающая, что это последний rewrite инструкция.
return используется для завершения запроса и отправки ответа, обычно используется для выполнения перенаправления; перезапись используется для изменения URI запроса и перенаправления запроса на другой адрес, обычно используемый для перезаписи URL-адресов или внутренней пересылки.
Поэтому, если вы выполняете переадресацию доменного имени 301, return больше подходит, а rewrite подходит для переадресации внутренних ссылок.