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

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

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

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

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

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

Ответы

Ответ 1

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

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

Apache docs: http://httpd.apache.org/docs/current/mod/core.html#allowencodedslashes

Решено:

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

Ответ 2

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