Как перехватить URL-запросы, сделанные моим маршрутизатором?

Я пытаюсь развернуть свою собственную службу динамического DNS на Dreamhost, и, следуя некоторым руководствам, мне удалось добиться идеальной работы серверной части - когда я открываю URL-адрес, запись DNS A для поддомена обновляется.

Но когда я размещаю данные на маршрутизаторе и пытаюсь заставить его работать (следуя стандартам dyndns или no-ip), маршрутизатор не обновляется.

Вот что у меня есть: 1. Серверная часть работает так, как я и ожидал. 2. Маршрутизатор работает при использовании сервисов по умолчанию (проверено без ip) для обновления IP. 3. Если я не прохожу аутентификацию на своем сервере, маршрутизатор выдает ошибку с ошибкой аутентификации - он обращается к серверу и выполняет аутентификацию. 4. Попытался вести журнал, чтобы увидеть, был ли в какой-то момент доступ к сценарию, и это не так.

Поэтому я думаю, что маршрутизатор запрашивает URL-адрес, который отличается от ожидаемого. Я пробовал с /, белым /update/ и с /nic/update/

В этот момент я хотел посмотреть, что на самом деле запрашивает маршрутизатор. Запустил XAMPP, установил Wireshark и попытался настроить маршрутизатор для обновления моего собственного компьютера. Нашли запросы и нашли ответ 301, так как маршрутизатор запрашивает /nic/update? и у меня он есть в /nic/update/?.

Браузер обрабатывает это перенаправление прозрачно, но маршрутизатор, похоже, не запрашивает новый URL-адрес. Может нужно возиться с mod_rewrite?


person Nuno Cordeiro    schedule 10.08.2018    source источник


Ответы (1)


Как и предполагалось, маршрутизатор воспринял перенаправление как плохой ответ. Повозившись с mod_rewrite, я заставил его работать.

Использовал это:

RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
#
# If the requested path and file is not /index.php and the request
# has not already been internally rewritten to the index.php script
RewriteCond %{REQUEST_URI} !^/index\.php
# and the requested path and file doesn't directly match a physical file
RewriteCond %{REQUEST_FILENAME} !-f
# and the requested path and file doesn't directly match a physical folder
RewriteCond %{REQUEST_FILENAME} !-d
# internally rewrite the request to the index.php script
RewriteRule .* index.cgi [L]
person Nuno Cordeiro    schedule 10.08.2018