Редирект 301 слэш: 301 редирект со слешем и без него в конце URL

.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

Зарегистрироваться через Facebook

Зарегистрируйтесь, используя электронную почту и пароль

Опубликовать как гость

Электронная почта

Требуется, но не отображается

Опубликовать как гость

Электронная почта

Требуется, но не отображается

Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания, политикой конфиденциальности и политикой использования файлов cookie

rewrite — RewriteRule независимо от завершающей косой черты в .

htaccess

спросил

Изменено 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», будет сопоставлено, независимо от косой черты или чего-либо еще, что идет после.

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *