我正在尝试在 Dreamhost 部署我自己的动态 DNS 服务,并遵循一些指南设法使服务器端完美运行 - 当我打开一个 url 时,子域的 DNS A 记录会更新。
但是当我将数据放在路由器上并尝试使其工作时(遵循 dyndns 或 no-ip 的标准(,路由器无法更新。
这是我所拥有的: 1.服务器端按我预期工作。 2. 路由器在使用默认服务(使用无 IP 测试(更新 IP 时工作。 3.如果我在服务器上的身份验证失败,则路由器会抛出身份验证失败错误 - 它正在访问服务器并进行身份验证。 4. 尝试记录以查看脚本是否在任何时候被访问,而事实并非如此。
所以我认为路由器请求的网址与我的预期不同。我尝试使用/,白色
/update/和/nic/update/在这一点上,我想看看路由器实际请求什么。启动XAMPP,安装Wireshark,并尝试设置路由器以更新我自己的计算机。找到请求并找到 301 响应,因为路由器要求/nic/update?我把它放在/nic/update/?.
浏览器透明地处理此重定向,但路由器似乎没有请求新的 URL。可能需要惹mod_rewrite?
正如怀疑的那样,路由器将重定向视为错误的回复。 在弄乱了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]