我们使用 Cloudflare 后面的 Apache(在 Runcloud 上)来重定向链接。使用 .htaccess 即可完成,尽可能简单。
Redirect 301 /advertiser/google https://google.com
由于某种原因,Apache 强制在每个重定向的末尾添加一个斜杠,而某些 URL(即那些不应包含斜杠的 URL)将不起作用。
如何配置 Apache 以准确重定向到 .htaccess 中的 URL?
答案1
请注意:HTTP 301 重定向是“永久移动”的,因此将被 Web 浏览器、CDN 和代理服务器缓存,并且在您更改或删除指令后,Redirect
您仍可能会观察到旧设置的影响。您可能需要从新的匿名浏览器窗口进行测试和/或在每次更改后清除缓存。
第二:Redirect
您重定向的 URL 路径中超出模式的任何路径信息都将附加到目标 URL。
换句话说:通过设置,Redirect 301 /advertiser/google https://google.com
具有较长路径的请求http://example.com/advertiser/google/more
应该被 Apache 重定向到https://google.com/more
。
当请求http://example.com/advertiser/google
被重定向到https://google.com/
(带有附加的尾部斜杠)时,最可能的原因是您的配置中的某些内容首先附加了该尾部斜杠并在应用重定向之前转换请求。
您可以绕过 cloud flare CDN 和您自己的 Web 浏览器的缓存效果,并通过使用命令行客户端直接向您的 Web 服务器发出请求来测试您的配置,例如:
curl -v -H "Host: example.com" http://<real-IP-address-of-your-webserver>/advertiser/google
并将其与
curl -v http://example.com/advertiser/google