당신은 당신의 사이트 루트에 htaccess로 파일에 다음 규칙을 추가 할 수 있습니다
# check if the request is for the images folder
RewriteCond %{REQUEST_URI} ^/images/
# check that it isn't a request for an image
RewriteCond %{REQUEST_URI} !\.(jpe?g|png|gif|bmp)$ [NC]
# check that it isn't a request for the 2 ok php files
RewriteCond %{REQUEST_URI} !^/images/(gradient|rgba)\.php$
# forbid access
RewriteRule^- [L,F]
이해야 그것 때문에 JPG/JPEG/PNG/GIF/BMP로 끝나지 않는 /images/
에 대한 요청 (또는 정규 표현식에 추가하려는 다른 확장자) 또는 gradient.php
또는 rgba.php
이 아니기 때문에 403이 금지됩니다.
는
편집 :
가 난 그냥 그들을 실행하지 싶어, 그들이 금지되고 싶지 않아 - 그것은 업로드 폴더, 그래서 기본적으로 그것을 원하는 사람은 JPG를 업로드하는 것이 경우에 그 내가 발견하지 않은 PHP 코드는 다음을 물려받지 않습니다 JPG 등 이미지 (AddType image/jpeg .jpg
을 통해) 올바른 마임/유형에 매핑되는대로 한
를 실행하지 않습니다, 비밀입니다 PHP 처리기와 거기에있는 코드가 실행되지 않습니다. 기본 핸들러를 사용하여 모든 파일을 제공하려면 이미지 디렉토리의 htaccess 파일에 AddHandler default-handler php
을 설정해야합니다. 그런 다음 그라디언트 및 rgba 파일을 다른 디렉토리로 이동해야합니다. 선택적으로 htaccess 파일에서 핸들러를 설정할 수는 없지만 <Location>
블록을 사용하여 가상 호스트 구성에서 핸들러를 설정할 수 있습니다.
편집 2 :
내가 잘못했다, 당신은 규칙을 사용하여 사용자 정의 핸들러를 설정 H
플래그를 사용할 수 있습니다. 따라서 위의 규칙에서 [L,F]
대신 [L,H=default-handler]
을 사용하면 이미지가 아니거나 gradient.php
또는 rgba.php
이 기본 처리기로 전송됩니다 (예 : PHP 파일은있는 그대로 보내지고 처리되지 않으며 mod_php에 의해 실행 됨).
그래서 당신은 다만 할 수 있습니다
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/images/(gradient|rgba)\.php$
RewriteRule^- [L,H=default-handler]
내가, 내가 그냥이 실행되지하려는 그들에게 금지되고 싶지 않아 - 그것은 업로드 폴더, 그래서 기본적으로 내가 원하는 사람이 JPG를 업로드하면 그 즉, 몰래 발견 된 PHP 코드입니다. 실행되지 않습니다. –
@RichBradshaw 덧글이 너무 깁니다. 내 편집을 참조하십시오. –
감사합니다. –