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