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

Двойная косая черта в URL автоматически преобразуется в одинарную косую черту в $ _SERVER ['REQUEST_URI']

Я работаю над одним сайтом, где мне нужно отображать 404 страницы, когда кто-то добавляет двойной слэш в URL.

Я написал логику для проверки REQUEST_URI, и если есть двойная косая черта, я показываю 404 страницы ...

Но когда я добавляю двойную косую черту в URL-адрес, она показывает одинарную косую черту в REQUEST_URI, но в URL-адресе это двойная косая черта ...

здесь я приложил снимок экрана с той же проблемой.

Например: если я ввожу www.example.com//check -> тогда это идет как /чек в REQUEST_URI но я хочу, чтобы это было как //чек

Сайт размещен в Облачный балансировщик нагрузки AWS (ELB). в локальных настройках он работает правильно, но в производстве - это проблема создания.

Может ли кто-нибудь помочь мне, как я могу это предотвратить?

Если проблема в том, что Google проиндексировал версию с двойной косой чертой, а также обычный путь, то лучше использовать перенаправление, чтобы отправить Google по правильному пути.

Поскольку вы отметили этот вопрос с помощью nginx, самым простым решением является использование выборочной перезаписи, например:

location / {
    if ($request_uri ~ ^//) {
        rewrite ^/.* $uri permanent;
    }
    [...]
}

Это работает, потому что $request_uri - исходный URI, а $ uri - нормализованный. Оператор rewrite заменяет полный URI нормализованным, чтобы Google знал, что версия с двойной косой чертой должна быть заменена нормализованной.