リクエストURIを保持しながら、サブドメイン化されていないすべてのリクエストをwwwにリダイレクトしようとしています。
リダイレクト用の .htaccess ファイルでこれを使用しています。
RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+$
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=302]
ただし、問題は、次のようなリクエストがある場合です。
example.com/search/?name=läkare
次の場所にリダイレクトされます。
www.example.com/search/?name=l%25C3%25A4kare
これはちょっと間違っています。2回エンコードしています。私はこれでそれをチェックします:
<?php
echo rawurlencode('läkare');//outputs l%C3%A4kare
echo "\n";
echo rawurldecode('l%25C3%25A4kare');//outputs l%C3%A4kare
echo "\n";
echo rawurldecode(rawurldecode('l%25C3%25A4kare'));//outputs läkare
なぜそれを2回エンコードするのですか?どうすればそれを防ぐことができますか? 私は 1 つのエンコードで問題ありませんが、2 つでは多すぎます。