Назад | Перейти на главную страницу

Удаление завершающей косой черты из перенаправленных URL-адресов (.jpg / .htm / .gif /) с помощью Apache

У меня есть сайт, который перенаправляется со старого хоста. У меня нет возможности изменить перенаправление старого хоста.

Проблема в том, что при перенаправлении добавляется косая черта в конце, когда это не подходит. Пример: http://example.com/picture.jpg/ или http://example.com/page.html/.

Это заставляет мой сервер возвращать 404.

В идеале я бы исправил перенаправление со старого сайта, но не могу.

Есть ли способ убрать косую черту в конце URL-адреса? Это несложный сайт (простой простой html, без языков сценариев и т. Д.).

Я посмотрел и не нашел существующего решения.

Вы можете сделать что-то вроде следующего, чтобы удалить завершающую косую черту с любого URL-адреса, который заканчивается расширением файла (.jpg, .html, .png, и т.д.)

RewriteEngine On
RewriteRule ^/?(.+?\.[a-z]{2,4})/$ /$1 [R=302,L]

Измените 302 (временный) на 301 (постоянный) только после того, как вы проверите, что он работает нормально (избегайте проблем с кешированием).

ОБНОВИТЬ: http перенаправлен на https, а https переписал забавную косую черту в конце.

Если все эти ссылки привязаны только к HTTP (не HTTPS), тогда имеет смысл выполнить это перенаправление только в HTTP vHost, а также перенаправить прямо на HTTPS. Например:

RewriteRule ^/(.+?\.[a-z]{2,4})/$ https://example.com/$1 [R=302,L]

(Хотя предоставляется, но если он находится в vHost для HTTPS, он будет перехватывать все запросы.)