#php #symfony #http #curl
#php #symfony #http #curl
Вопрос:
Я переношу веб-сайт. И мне нужно выполнить миграцию более 600 старых URL-адресов на новый тип URL-адресов с маршрутизацией symfony и постоянным перенаправлением 301.
пример одного из моих URL:
redirect_test-url:
path: /test-url
defaults:
_controller: FrameworkBundle:Redirect:urlRedirect
path: /category/test-url
permanent: true
Перенаправление, похоже, работает. Но мне нужно быть уверенным, что все мои старые URL перенаправлены с помощью перенаправления 301.
Я думаю, что могу создать скрипт с php и curl, чтобы проверить все URL. Но я не знаю, как получить результат curl.
Вот мой запрос curl:
curl https://local.dev -k
Но мой терминал отправляет мне обратно html.
Как я могу получить ответ кода состояния http, чтобы сохранить его в базе данных?
Ответ №1:
Вы можете сбросить заголовки ответа с -D
помощью опции:
curl -s -D - http://www.martar.fr -o /dev/null
Ответ:
HTTP/1.1 301 Moved Permanently
Date: Fri, 07 Oct 2016 07:50:51 GMT
Server: Apache/2.4.10 (Debian)
Location: https://www.martar.fr/
Content-Length: 309
Content-Type: text/html; charset=iso-8859-1
-s
предназначен для автоматического режима (ничего не выводить)
Ответ №2:
Я думаю, возможно, вы хотите что-то похожее на это:
curl -sI https://example.com -w '%{response_code}:%{redirect_url}n' -o /dev/null
В качестве бонуса вы получаете как код перенаправления, так и цель перенаправления (если таковая имеется).
Ответ №3:
переменные записи curl в целом чрезвычайно полезны
curl -sI https://duravit.de -w '%{response_code}:%{redirect_url}:%header{server}n' -o /dev/null
https://everything.curl.dev/usingcurl/verbose/writeout#variables