400不正な要求を修正するのに役立つ、私はURLは私のCodeIgniterのプロジェクトでCodeIgniterのプロジェクト
RewriteEngine on
RewriteCond $1 !^(index\.php|js|media|style|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
からのindex.phpを削除するには、次ののhtaccessファイルを持って、私は(フォームヘルパーを使用して)検索フォームを使用していなければなりません。それはPOSTに基づいているので、コントローラの検索にリダイレクトするために "pre_search"というコントローラを作成して、POSTされたデータがURLに表示され、URIヘルパーのセグメントメソッドで使用できるようにしました。
だから私のpre_searchコントローラ
<?php
class Presearch extends CI_Controller {
//just to make form POST data visible in URL string for search
public function index() {
redirect('search/' . $this->input->post('term'));
}
}
そして、検索コントローラは、実際の検索を行います。その間、私はテストのためにURLのすべての文字を許可しました。
$config['permitted_uri_chars'] = '';
私の問題は、私はURLにパーセント記号(%)を持っている場合、それは不正な要求を示しになりました。私はそれがApacheの応答であり、codeigniterはそれと関係がないと思う。
は、いくつかの研究の後、私は誰かが、私はこの方法を試してみましたが、それはすべてを壊すこの
RewriteRule ^(.*)$ /index.php/$1 [B,L]
のようにhtaccessファイルを変更することで、その問題を解決することが示唆ことがわかりました。
%記号がエンコードされていなかったので、私はこの
redirect('search/' . urlencode($this->input->post('term')));
ように私のpre_searchコントローラでも使用しようとしましたが、問題を解決していませんでした。
これを解決するにはどうすればよいですか?私はこれがApacheの問題だと知っています。私は自分の意図を明確にするためにコードネームコードを説明しています。事前に
おかげ
ディーパック