2010-05-22 4 views
10

POST 요청이 "http://domain.com/directory/"으로 전송되면 POST 데이터가 수신되지 않습니다. 그러나 "http://domain.com/directory/index.php"로 전송되면 수신됩니다.PHP는/directory/only /directory/index.php의 POST 요청을 수신하지 않습니다.

디렉토리 만 호출하면 어떻게 작동합니까? 감사!

+3

요청시 POST가 발생하지 않는 이유는 없습니다. 내가 생각할 수있는 유일한 방법은 펑키 한 .htaccess 파일을 설정했을 때 가능한 리디렉션입니다. –

+5

"http : //domain.com/directory/ "브라우저 창에서 해당 주소에 내용이 표시되는지, 오류 메시지가 표시되는지 또는 브라우저 주소가"http://domain.com/directory/index "로 변경되는지 확인하십시오. PHP "? –

+5

리디렉션의 또 다른 가능한 소스는 "/ directory /"대신 "/ directory"를 사용하는 것입니다. 후행 슬래시를 잊어 버리면 리디렉션이 트리거 될 수 있습니다. – janmoesen

답변

4

Firefox 용 HttpFox와 같은 도구를 사용해 보았습니까? 디렉토리를 요청할 때 리디렉션되고 있는지 확인한 적이 있습니까? 리디렉션이 GET 요청으로 변환되면서 POST 요청을 죽일 수 있다는 것을 알고 있습니다.

4

Lucanos가 말한 것처럼 index.php으로 리디렉션되는 웹 서버는 무엇입니까? 리디렉션하면 POST 데이터가 페이지간에 "손실"될 수 있습니다. GET을 시도하고 URL이 올바른 데이터로 끝나는 지 확인하십시오.

6

아파치를 사용하고 있다면, mod_dir 모듈이 사용 가능하고 올바르게 구성되어 있는지 확인하십시오. 이것들은 내 dir.conf의 내용은 다음과 같습니다 index.php를 alongwith, 바로 index.html 파일 다른 이름을 바꿀 파일을 삭제 index.html을 디렉토리가 포함되어있는 경우

<IfModule mod_dir.c> 
    DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm 
</IfModule> 
+0

또한이 규칙은 .htaccess/디렉토리/ –

+1

에있을 수 있습니다. 그러나 나는 단지 디렉토리에 액세스 할 때 index.php를 볼 수 있습니다. 이것은 문제가 아닙니다. 게시물 만 손실됩니다. – Lazlo

0

때문에 당신은 단지 디렉토리의 경로를 제공하는 경우, 동일한 디렉토리에 index.php가 여전히 존재하더라도 index.html은 항상 활성화됩니다.

+0

아니요, 항상 그렇지는 않습니다. Apache의 DirectoryIndex 설정 순서에 따라 달라집니다. –

3

이 내용

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} -s [OR] 
RewriteCond %{REQUEST_FILENAME} -l [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^.*$ - [NC,L] 
RewriteRule ^.*$ index.php [NC,L] 

그것은 경로에 인덱스 (어떤 파일이나 폴더, 그 요구에 존재하지 않기 때문에) 물리적으로 불가능 모든 요청을 서버에 알립니다과 내부 "의 .htaccess"파일/디렉토리를 생성 /. PHP의 이점은 .css 파일 .js, .jpg 파일이 index.php로 라우팅되지 않는다는 것입니다.

+0

이것은 완벽하며 저에게 효과적이었습니다. – KyleT

+0

시도했지만 작동하지 않았다. ( –

관련 문제