.htaccess — Apache устанавливает косую черту в конце до 301
спросил
Изменено 3 года, 3 месяца назад
Просмотрено 880 раз
Мы используем Apache (на Runcloud) за Cloudflare для перенаправления ссылок. Это делается с помощью .htaccess, максимально просто.
Перенаправление 301 /advertiser/google https://google.com
По какой-то причине Apache принудительно ставит косую черту в конце каждого перенаправления, и некоторые URL-адреса, а именно те, которые не должны содержать косую черту, не будут работать.
Как настроить Apache для перенаправления именно на URL-адрес в .htaccess?
- apache-2.2
- .htaccess
2
Обратите внимание: перенаправление 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 "Хост: example.com" http://<реальный-IP-адрес-вашего-веб-сервера>/advertiser/google
и сравните это с
curl -v http://example.com/advertiser/google
1
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google
Зарегистрируйтесь, используя электронную почту и пароль
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания, политикой конфиденциальности и политикой использования файлов cookie
rewrite — RewriteRule независимо от завершающей косой черты в .

спросил
Изменено 4 года, 3 месяца назад
Просмотрено 1к раз
Я хочу перенаправлять URL-адреса независимо от косой черты в конце. Причина в том, что мой сайт по умолчанию использует косую черту в конце; если во внутренней ссылке отсутствует завершающая косая черта, у меня есть цепочка перенаправлений (/test -> /test/ -> /go-here/). 9тест(/$|$) /иди сюда/ [R=301,L]
Редирект 301 /test /go-here/
(но я не хочу этого делать)По сути, мне нужен хороший способ перенаправления URL-адресов для экземпляра, подобного приведенному ниже, без необходимости иметь тонны строк в моем файле .htacess.
-
/тест -> /иди сюда/
-
/тест/ -> /иди сюда/
- переписать
Использование оператора «один раз из одноразового номера», который является сокращением от {0,1} 9test /go-here/ [L,R=301]
Все, что начинается с «test», будет сопоставлено, независимо от косой черты или чего-либо еще, что идет после.