2013-01-15 1 views
0

여러 가지 방법을 시도해 보았습니다. 많은 예제와 질문을 읽었으며 아직 완료 할 수없는 경우도 있습니다.
내가 원하는 것은 특정 URL 형식을 사용하여 특정 파일 및 기능에 대한 액세스를 강제하고 다른 파일 (심지어 기존 파일/디렉토리)에 대한 액세스 (가짜 404)를 거부하는 것입니다..htaccess : 기존 파일을 숨기고 있지만 RewriteRule을 통해 사용하십시오.

이 부분은 작동합니다

RewriteEngine On 

RewriteRule ^([\w]+)$ /somefolder/index.php?page=$1 [L] 
RewriteRule ^person/([\d]+) /somefolder/index.php?page=person&id=$1 [NC,L] 
RewriteRule ^css/([\w]+\.css) /somefolder/css/$1 [NC,L] 
RewriteRule ^images/([\d]{4}-[\d]{2}-[\d]{2}/[\d]+\.(gif|jpe?g)) /somefolder/images/$1 [NC,L] 

다음 줄은, 그러나, 500 내부 서버 오류가 발생합니다

RewriteRule ^(.*)$ /somefolder/index.php?page=error [R=404] 

내가 원하는을하는 경우 /somefolder/index.php (또는 다른 파일/디렉토리가 존재할 수도 있고 존재하지 않을 수도 있음)는 방문자가 요청하면 404와 오류 페이지를 반환해야합니다. 또한 나중에 추가 할 계획입니다.

ErrorDocument 404 /somefolder/index.php?page=error 

.htaccess 파일은 루트에 있습니다. 이게 다 가능하니?

예제 :

(페이지 사용자가 액세스 및 다른 페이지에 링크)
http://example.com/breakfast ->http://example.com/somefolder/index.php?page=breakfast
(페이지으로 사용되는 스타일 시트)
http://example.com/css/default.css ->http://example.com/somefolder/css/default.css
(한 이미지는에 사용 문서)
http://example.com/images/2011-01-01/test.jpg ->http://example.com/somefolder/images/2011-01-01/test.jpg
(기타 모든 항목)
http://example.com/this/may.exist -> 404 + 오류 페이지

.. 누군가가 http://example.com/somefolder/css/default.css (존재)을 얻으려고하면 수신하지 못한다는 것을 의미합니다.

+0

¿ '특정 URL 형식'은 정확히 어떻게됩니까? 가능한 경우 나머지 URL과의 차이점을 강조하는 설명과 함께 고정 된 문자열과 가변적 인 세그먼트를 지정하십시오. 그 정보는 당신이 원하는 것을 더 잘 이해하는 데 중요합니다. –

+0

"형식"부분 중 하나는 페이지가 http://example.com/thispage와 같이 도메인 부분 뒤에 페이지 이름을 사용하여 액세스되어야한다는 것입니다. 실제 파일을 요청하면 오류가 발생합니다 (누락). – LGT

답변

1

이것은 내가 원하는 것을 수행합니다. 이 모든 PHP 파일에 직접 액세스를 거부하지만, 바로 가기 키를 통해 실행하도록 할 수 있습니다 : 그것은 무한 루프 생성 (내 생각) 때문 500 오류가 발생

ErrorDocument 403 /index.php?page=error 
ErrorDocument 404 /index.php?page=error 

RewriteEngine On 
RewriteRule ^$ /index.php?page=start [L] 
RewriteRule ^([\w]+)$ /index.php?page=$1 [L] 

<Files ".ht*"> 
    Order Allow,Deny 
</Files> 

<Files "*.php"> 
    Order Deny,Allow 
    Deny from All 
    Allow from env=REDIRECT_STATUS 
</Files> 

- 재작가 발생할 때마다, htaccess로의 파일 처리 다시 한번 :

RewriteRule ^(.*)$ /somefolder/index.php?page=error [R=404] 
관련 문제