2012-02-09 8 views
15

URLの一部として/を変数として渡す必要があります。URLの2Fが壊れており、必要な.phpファイルを参照していません

私の構造は次のようになります。この場合 www.domain.com/listings/page-1/city-Burnaby+South/type-Townhome/bedroom-2/bathroom-2

、最終的に私のPHPスクリプトは$ _SERVER ['REQUEST_URI'] varを使って解析します。

URLが生成されたときに、hte変数の1つが "Apartment/Condo"になり、/がPHPでurlencode()を介して%2Fになると、すべてが異常終了し、 "Not Found"エラーが発生します。

URLを壊すことなく、/をどのように渡しますか?私は何が欠けていますか?私は、これらの問題を回避するために、これらのurlencode()文字(%2F、%20など)の全体が存在すると考えました。

答えて

30

URLを行うことができます。

AllowEncodedSlashes OnまたはNoDecodeを有効にするようにApacheの設定を変更することができます。これにより、意図しないセキュリティ問題が発生する可能性があります。この問題は、この「機能」が緩和するように設計されています。

Apacheのドキュメント:解決http://httpd.apache.org/docs/current/mod/core.html#allowencodedslashes

は、この1つはあまりにも私を得た - 質問

+0

それは説明します。本当にありがとう。 – jeffkee

-3

あなたが均等にだけ% 2F/または% 5cの\復帰セキュリティ目的のためにApacheからでurldecode();

+0

ためのおかげで、URLは(urldecodeを使用して渡され、デコードされます)。私の問題は、PHPページにレンダリングさえしないということです。リクエストにどこかに%2Fが含まれるとすぐに404を返します。 – jeffkee