2012-08-30 3 views
2

cPanel의 새 애드온 도메인에 빠른 내부 프로젝트를 설정하고 있습니다. 이 특정 인증서에는 SSL 인증서가 설치되어 있습니다. 내 .htaccess를 빌드하고 deny from all<Files config.php> 지시문을 추가하여 내 config.php 파일에 액세스 할 수 없도록했습니다. 웹 루트 외부에 저장하는 것이 이상적이지만이 경우에는 할 수 없습니다.htaccess 파일이 거부되었습니다. 403.shtml에 404가 없지만 정의 된 사용자 정의 오류 페이지가 없습니다

일반적으로 브라우저에서 www.domain.com/config.php으로 갈 때 Apache의 기본 403 금지 된 페이지가 표시 될 것으로 예상됩니다. 이것은 동일한 서버의 다른 도메인에서 발생합니다. 그러나이 경우 나는 진술, 404 찾을 수 없음 오류가 주어지고있어 :


요청 된 URL의 /403.shtml이 서버에서 찾을 수 없습니다 찾을 수 없습니다.
또한 ErrorDocument를 사용하여 요청을 처리하는 동안 404 찾을 수 없음 오류가 발생했습니다.

일반적으로 사용자 정의 오류 문서를 정의하려고 시도했지만이 경우에는 그렇지 않습니다.
이 도메인이 동일한 cPanel 계정의 다른 모든 도메인과 다른 점은 SSL 인증서가 있다는 것뿐입니다. 이 404 오류는 http 또는 https를 사용하여 탐색하는 것과 관계없이 동일합니다. 나는 캐시를 지우려고 노력했지만 여전히 동일합니다.

누군가 내 .htaccess에서이 문제를 일으킬 수있는 내용을 볼 수 있습니까?

DirectoryIndex /index.php 

Options -Indexes +FollowSymLinks 
ServerSignature Off 

# PARSE PHP IN OTHER FILES 
# AddType FOR PHP AS APACHE MODULE, AddHandler FOR CGI 
AddType application/x-httpd-php .ics .xml 

# ATTEMPT FORCE PDF DOWNLOAD 
AddType application/octet-stream .pdf 

# PREVENT ACCESS TO CONFIG 
<Files config.php> 
order allow,deny 
deny from all 
</Files> 

# CACHING 
# http://httpd.apache.org/docs/current/mod/mod_headers.html 
<FilesMatch "\.(js|css|ico|png|gif|jpg)$"> 
Header set Cache-Control "max-age=172800, public, must-revalidate" 
#Header set Expires "Thu, 15 Apr 2011 20:00:00 GMT" 
</FilesMatch> 

# PREVENT ACCESS TO STATS UPDATE SCRIPT AS IT'S CLI ONLY 
<Files stats_update.php> 
order allow,deny 
deny from all 
</Files> 

Redirect 302 /preview http://otherdomain.com/documents/preview 
Redirect 302 /sample http://otherdomain.com/documents/preview 

RewriteEngine On 

# REWRITE NON-WWW TO WWW 
RewriteCond %{HTTP_HOST} !^www\. [NC] 
RewriteRule (.*) http://www.%{HTTP_HOST}/$1 [R=301] 

RewriteRule ^about/?$ /index.php [L] 
RewriteRule ^contact/?$ /contact.php [L] 
RewriteRule ^home/?$ /home.php [L] 
RewriteRule ^order/?$ /order.php [L] 

# MAINTAINANCE 
#RewriteCond %{REMOTE_HOST} !^123\.123\.123\.123 
#RewriteCond %{REQUEST_URI} !^/maintainance\.html$ 
#RewriteRule ^(.*)$ /maintainance.html [R=302,L]

편집 : 그것의 cPanel는 기본 및 부가 도메인을 처리하는 방식과는 무엇이든 될 수 있을까? 의 cPanel 계정에서
당신은 누구의 파일 public_html/addondomain.com/

에서 살고 public_html/.htaccess에서 기본 도메인에 대한 htaccess로는 /에 영향을 미치는의를 오버라이드 (override) 할 것인가, 그 파일 public_html에서 살고 당신이 부가 도메인 (또는 하위 도메인)를 정의 기본 도메인이 addon domains at public_html/addondomain.com/.htaccess?
.htaccess는 디렉토리를 통해 하위로 연결되지만 특정 도메인의 DocumentRoot보다 위에있는 경우도 있습니다 (예 :이 애드온 도메인의 경우?

편집 2 : 그냥 정보를 원하시면 다음은 2 일이 301 리디렉션을 얻을 수 있지만,이 403.shtml로 리디렉션 것 볼 수있는 캐싱

[email protected] [/home/username]#curl -i 'http://www.mydomain.com/config.php' 
HTTP/1.1 403 Forbidden 
Date: Sun, 16 Sep 2012 19:05:10 GMT 
Server: Apache 
Content-Length: 331 
Content-Type: text/html; charset=iso-8859-1 


[email protected] [/home/username]# curl -i 'http://mydomain.com/config.php' 
HTTP/1.1 301 Moved Permanently 
Date: Sun, 16 Sep 2012 19:05:20 GMT 
Server: Apache 
Location: http://www.mydomain.com/403.shtml 
Content-Length: 244 
Content-Type: text/html; charset=iso-8859-1 

을 우회 모두 HTTP 요청에 대한 응답이다. 그래서 403.shtml은 www에 다시 쓰기 전에 이미 주입되었습니다. 일어난다.

답변

5

이것은 바닐라 아파치 설치에서 재현 할 수 없었으므로 cPanel을 더 심문하기 시작했습니다. 그래서 주변의 많은 mucking 후 나는 이슈를 추적했다. cPanel은 당신을 위해 ErrorDocument 지시자를 실제로 설정해 놓았으며 전혀 영리하지는 않습니다. 특히 Apache 기본값과 시각적으로 동일한 문서에 ErrorDocuments를 설정하는 경우
ErrorDocument cPanel 화면이 비어있어 어느 부분이 발생하는지 분명하지 않습니다.의 cPanel의 httpd.conf를 적지에서 구축

는 CONFIGS을 포함하고 우리가 403.shtml 요청에 표시되는 곳이다, 이동 그래서이 ... 떨어져 있습니다

/usr/local/apache/conf/includes/errordocument.conf 
... 
# 403 - Forbidden 
ErrorDocument 403 /403.shtml

을 성공 시켰습니다. cPanel이 나를 위해 오류 문서를 설정했습니다. 403에서 404를 보는 혼란을 피하기 위해 403 오류 메시지를 설정 했으므로 일관성이 있습니다.

이 사람이 도움이되기를 바랍니다.

1

htaccess 파일로 인해 사용자 정의 오류 페이지가 발생하지 않습니다. 다른 htaccess 파일이없는 경우 문제는 아마도 its own way of setting custom error pages 인 cPanel에 있습니다.

+0

나는 그 섹션에서 cPanel을 살펴 봤는데 문제 도메인에 대해 명시 적으로 설정된 것처럼 보이지 않습니다. 나는 약간의 추가 생각으로 나의 Q를 편집했지만. 건배 – batfastad