У меня есть сайт, который перенаправляется со старого хоста. У меня нет возможности изменить перенаправление старого хоста.
Проблема в том, что при перенаправлении добавляется косая черта в конце, когда это не подходит. Пример: 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, он будет перехватывать все запросы.)