2013-03-28 2 views
0

타사 서비스 (전자 메일 서비스 공급자)가 특정 이벤트가 발생할 때 POST 데이터가 포함 된 http 요청을 작성하는 CodeIgniter로 작성된 응용 프로그램이 있습니다. 문제는이 제 3 자 서비스가 요청을하는 URL이 완전히 수정 될 수 없다는 것입니다. 구체적으로 말하자면, 내가 지정한 도메인과 디렉토리에 w_4.php이라는 파일에 요청합니다.특정 파일에 대한 요청을 codeigniter에 다시 쓰기

이 별도의 파일을 CodeIgnitier 스택 외부에 두는 대신 .htaccess를 사용하여이 파일에 대한 모든 요청을 내 codeigniter 응용 프로그램 내 컨트롤러 (예 : api/my_controller/my_method)로 다시 작성하고 싶습니다. 하지만 요청에 POST 데이터가 필요하므로 리디렉션을 사용할 수 없다고 생각합니다. 요청이 CodeIgniter의 라우팅됩니까

RewriteCond $1 (w_4\.php) 
RewriteRule ^(.*)$ index.php/api/my_controller/my_method 

동안, 나는 그냥 컨트롤러/경로가 존재하더라도 404를 얻을 :

나는 나의 htaccess로이 같은 뭔가를 시도했다.

+0

는'규칙이 제대로 작동 플래그, 그것은 mydomain.com/index.php/api/my_controller/my_method 리디렉션 그리고 그것은'my_method' 메소드를 호출 my_controller 컨트롤러에서. 아마도 URL이 다시 작성 되더라도 codeigniter는 "w_4.php"의 실제 전달 된 URI를보고 경로를 알아내어 404를보고 할 것입니다. –

+0

약간 혼란 스럽기 때문에 리디렉션이 작동합니다. 'my_method'는 그 일을합니다.하지만 404가 생깁니 까? –

+0

리다이렉트 플래그'[R]'없으면 (내부적으로 요청을 재 작성) 404가 되겠지만, 리다이렉트 my_method가 성공적으로 호출된다. 그러나 리디렉션 규칙을 다시 작성하면 원래 요청에 my_method에서 액세스 할 수 있어야하는 POST 데이터가 포함되어 있기 때문에이 경우에는 사용할 수 없습니다. –

답변

관련 문제