% 2F в URL-адресах и не ссылается на требуемый файл .php

Мне нужно передать / как переменную как часть URL-адреса.

Моя структура выглядит следующим образом: www.domain.com/listings/page-1/city-Burnaby+South/type-Townhome/bedroom-2/bathroom-2

В этом случае он в конечном итоге сводится к listing.php, и все остальное за ним становится параметрами, которые мой скрипт PHP анализирует с помощью переменной $ _SERVER ['REQUEST_URI'].

Однако, когда одна из переменных hte становится «Apartment / Condo», а / становится% 2F через urlencode () в PHP, когда URL-адрес генерируется, все это задыхается, и я получаю ошибку «Not Found».

Как передать / не нарушая URL? Что мне не хватает? Я думал, что все эти символы urlencode () (% 2F,% 20 и т. Д.) Были для устранения этих проблем.

Solutions Collecting From Web of "% 2F в URL-адресах и не ссылается на требуемый файл .php"

Urls с % 2f / или % 5c \ возвращает 404 из Apache для целей безопасности.

Вы можете изменить конфигурацию Apache, чтобы включить AllowEncodedSlashes On или NoDecode . Имейте в виду, что это может привести к непреднамеренным проблемам безопасности, которые эта «функция» предназначена для смягчения.

Документы Apache: http://httpd.apache.org/docs/current/mod/core.html#allowencodedslashes

Решено:

  • Получите ошибку HTTP 400, если% 2F является частью URL GET в JBOSS

Этот меня тоже получил – спасибо за вопрос

Вы можете в равной степени использовать urldecode();