Мы используем Apache (на Runcloud) за Cloudflare для перенаправления ссылок. Это делается с помощью .htaccess, насколько это возможно.
Redirect 301 /advertiser/google https://google.com
По какой-то причине Apache устанавливает завершающую косую черту в конце каждого перенаправления, и некоторые URL-адреса, а именно те, которые не должны содержать завершающую косую черту, не будут работать.
Как настроить Apache для перенаправления именно на URL-адрес в .htaccess?
Обратите внимание: перенаправление HTTP 301 "перемещено навсегда" и, как таковое, будет кэшироваться обоими веб-браузерами, 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/
(с добавленной косой чертой в конце) наиболее вероятная причина заключается в том, что что-то в вашей конфигурации сначала добавляет эту завершающую косую черту и преобразует запрос до применения перенаправления.
Вы можете обойти эффекты кеширования как из облачной CDN, так и из вашего собственного веб-браузера, и протестировать свою конфигурацию, отправив запросы непосредственно на свой веб-сервер с помощью клиента командной строки, например:
curl -v -H "Host: example.com" http://<real-IP-address-of-your-webserver>/advertiser/google
и сравните это с
curl -v http://example.com/advertiser/google