2011-09-16 2 views
3

로컬 개발 컴퓨터에서 Windows 7에서 실행되는 Apache 2.2.16 및 PHP 5.3.5가 포함 된 PDT + Zend Server를 다운로드했습니다. 로컬 사이트에서 404, 403 및 404 용 ErrorDocuments를 포함하는 .htaccess를 포함 시켰습니다. 그리고 500. PHP에서 사용자가 존재하지 않는 문서를 요청할 때 헤더 ("HTTP/1.0 404 Not Found")를 사용합니다. 내 로컬 서버에서 모든 것이 잘 작동합니다. 내 사용자 정의 ErrorDocument가 나타나 행복합니다.HTTP 상태 코드를 PHP에서 Apache로 되 돌리시겠습니까?

Linux 서버에서 Apache 2.2.38 및 PHP 5.3.8을 실행하는 공유 호스트에 모든 것을 업로드합니다. PHP에서 오지 않은 경우 갑자기 ErrorDocuments가 작동합니다.

Apace가 PHP의 오류 코드를 볼 수 있도록 PHP.ini 또는 httpd.conf 또는 .htaccess에 몇 가지 설정이 있습니까? 이는 내 dev 호스트 서버가 올바르게 작동하지만 내 공유 호스트가 아니라는 것을 의미합니까?

이것에 대한 연구에서 필자가 보았던 모든 것은 "일단 아파치가 PHP에 전달하면 상태 코드가 보이지 않습니다." 그런 경우 왜 내 dev 서버가 제대로 작동합니까?

편집 명확성을 위해

, 여기에 htaccess로이다 :

# Use PHP 5.3 
Action application/x-hg-php53 /cgi-sys/php53 
AddHandler application/x-hg-php53 .php 

#Deny Include Files 
<Files *.inc> 
order deny,allow 
deny from all 
</files> 

#Provide custom error documents 
ErrorDocument 404 /Errors/Http404.php 
ErrorDocument 403 /Errors/Http403.php 
ErrorDocument 500 /Errors/Http500.php 

사용자가 사용자 myhost.com/jdkslfjdls으로 이동했을 경우 오류의 컨텐츠를 수신하기 때문에 작동 htaccess로 /Http404.php.

그러나 사용자가 myhost.com/images/GetImage.php?Id=5 (이미지 # 5가없는 경우)로 이동하면 사용자는 콘텐츠를받지 못합니다.

(내부 IP 주소) /images/GetImage.php?Id=5로 이동하면 사용자는 Errors/Http404.php의 내용을받습니다.

사용자가 GetImage.php? Id = 6 (이미지 # 6이 있지만 권한이없는 경우)에 액세스하려고하면 비슷한 문제가 발생합니다. 공유 서버에서 빈 페이지 또는 브라우저의 403 오류가 발생합니다. 내 dev에 서버에서, 그들은 내 실제 403 오류 페이지를 얻을.

.inc 파일에 액세스하려고하면 403 오류 문서가 공유 서버에서도 작동합니다.

+0

사용자 지정 오류 문서의 위치는 어디입니까? 그것은 리눅스 서버에 의해 연결할 수 있어야합니다, 그래서 귀하의 Windows 서버에 다음 그 이유는 그것을 보이지 않는 – thegaffney

+0

그것은 내가 존재하지 않는 문서, 예를 들어 http://myhost.com/으로 이동하려고하면 보여줍니다 hfjdshfkdsh. 그것은 PHP에서 헤더를 사용할 때만 실패합니다. –

+0

어디에서 헤더 ("HTTP/1.0 404 Not Found")를 넣고 있습니까? 존재하지만 당신은 그것이 404 코드를 던지고 싶어 문서에? – thegaffney

답변

0

.htaccess 파일이 서버에서 사용 되었습니까? 때로는 호스팅 회사가 로컬 아파치 설정을 로컬 .htaccess 파일로 덮어 쓰는 것을 허용하지 않습니다.

대신 위와 같이 변경

AllowOverride None 

시도를 발견하면 다음 지시문

AllowOverride All 

보고 싶을 것보다 당신은 그러나 당신의 가상 호스트 설정에 액세스 할 수있는 경우. 아파치 당신이

AllowOverride ALL 

이있는 경우

+0

myhost.com/fkjdshfkds로 이동하면 올바른 맞춤 404 문서를 얻을 수 있기 때문에 .htaccess가 사용 중입니다. PHP는 헤더 ("HTTP/1.0 404 Not Found") 나 다른 상태 코드를 사용하려고 할 때만 문제가됩니다. PHP는 내 Windows 서버에서는 작동하지만 공유 호스트에서는 작동하지 않습니다. –

+0

PHP에서 존재하지 않는 페이지로 리디렉션하고 문서를 가져 오는 빠른 해킹을 할 수 있습니까? : P 나는 이것이 해결책을 제공하지 않는다는 것을 안다. 그러나 당신이 정말로 그것을 필요로하고 실행하면 잠시 동안 당신을 도울 수있다. –

+0

현재 "허락을 필요로합니다"또는 "이미지를 찾을 수 없습니다"라는 오류 이미지를 보려고합니다. 하지만 헤더 리디렉션을 사용하는 것이 좋습니다. –

0

체크.하나의 가능한 원인 일 수 있습니다

어쨌든 귀하의 웹 사이트에 해당하는 가상 호스트 내부의 디렉토리 지시자, 아래의 conf는, 다른 하나는 당신이 우분투 나 데비안의 mod_rewrite를 기반으로 시스템을

을 활성화 여부를 확인 할 수있다, 당신 /etc/apache2/mods-available/mod_rewrite.load의 mod_rewrite.load를 /etc/apache2/mods-enabled/mod_rewrite.load로 간단하게 링크하거나 복사하십시오.

다시 쓰기는 아무런 관련이 없지만 .htaccess 지시어에 mod_rewrite가 필요한 경우를 보았습니다

그래서 아파치 conf 파일에있는 것들. 아무런 변화가 없다면 저에게 연락하십시오 @ [email protected]

희망이 있습니다.

+0

"RewriteEngine On"으로 시도했지만 변경 사항은 없습니다. –

관련 문제