特定のURLで404エラー!

CakePHPで開発中、ある特定のURLの場合のみ404エラーが発生しました。

一意のURLを生成するためにbase64_encodeなどを駆使して生成したURLで発生。

色々調べてみると…

base64の使用文字
「a-zA-Z0-9+/」
この最後の「/」が問題のようだ。
urlencodeして使用していたけど×

mod_rewriteでURLに「%2F(スラッシュをurlencodeした文字)」が入っていると404を返すらしい。

それを解決するには、「AllowEncodedSlashes On」にすると解決できるそうだ。
これはデフォルトだとOffになっているため、先に%2Fをスラッシュとして認識し、URLが見つからないと404を返すと。。

んじゃ、Onにして解決だね!

と言いたいところだけど、それはちょっと難しい。

これはApacheの設置httpd.confなどで設定するものらしい。
htaccessでは解決できない。
レンタルサーバーなどでは簡単に変更できないので詰んでしまう・・・・

ということで、私は単純にqueryでgetとして送信することで回避させました。

https://zero-one-x.com/xxxx%2Fxxx

↓↓↓↓

サイト

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA