ホームページ  >  記事  >  バックエンド開発  >  Apache が .htaccess ファイルでリダイレクトした後、URL のプラス記号が解析できない問題の解決策

Apache が .htaccess ファイルでリダイレクトした後、URL のプラス記号が解析できない問題の解決策

little bottle
little bottle転載
2019-04-25 17:20:052878ブラウズ

この記事は主に、Apache が .htaccess ファイルで RewriteRule リダイレクトを使用した後、URL のプラス記号が解析できない問題の解決について説明します。これには特定の参考値があります。興味のある友人はそれについて学ぶことができます。

今日、.htaccessを使って擬似静的にしたところ、不思議なことが起こりました。URLにCが存在すると問題が発生します。Cという単語を処理すると、どうやっても$_GETが取得できません。 C スペースを取得できるのは私だけです。

最初は urlencode で処理されていないのかと思いましたが、後で確認すると確かに処理されており、バックグラウンドでトラブルシューティングを行った結果、書き換えの問題であることが判明しました。単一ファイル環境では、C を取得できます。単語は、もちろん、urlencode されています。

理由: APACHE がパラメーターを取得した後に独自に URLdecode 処理を実行するため、リライトでは単語 c を取得できません。 C でプラス記号を取得できない問題について

これまでに見た解決策は 1 つだけですが、これは PHP 公式 Web サイトにも記録されています。c を処理するときに、urlencode 処理を 2 回実行します。つまり、urlencode(urlencode) ('C ')) を書き換えると、C という単語を取得できるようになります。

添付のアドレスは、PHP.NET 上の特定のアドレス http://www.php.net/urlencode

関連チュートリアル: PHP ビデオ チュートリアル

以上がApache が .htaccess ファイルでリダイレクトした後、URL のプラス記号が解析できない問題の解決策の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcnblogs.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。