이것은 아마 내가 당신이해야 할 노력하고 있다는 생각을 기반으로 ServerFault 질문이었다, 그러나해야 당신은 실제로 당신이하려고하는 일을 할 수 없기 때문에 (당신이 그것을하려는 방식이라고 생각합니다) 나는 두 가지 대안을 제공 할 것입니다; 하나는 작동하지 않을 가능성이 있고 다른 하나는 PHP 스크립트가 포함되어 있습니다 (질문에 대한 기록에서 PHP에 대해 이전에 묻는 것을 보여주기 때문에).
문제점 :
첫째, 내가 틀렸다면 당신이 날 수정할 수 있도록 수행하려는 생각 :
# Apply ForceType to anything that's in a path that matches this
<FilesMatch "img/products/[^/]+/(hi|low)/[^/]+$">
ForceType applicaton/octet-stream
</FilesMatch>
그러나이 작동하지 않습니다 , FilesMatch
은 examines the filename이므로 .htaccess
파일을 적절하게 배치하거나 서버 또는 가상 서버 구성에서 Directory
문으로 지시문을 결합 할 수 있습니다.
당신의 경우에는 이것은 불가능합니다. (음, 어쨌든, 당신은 필요한 구성에 액세스 할 수 있습니다. 그러나 귀하의 질문에 .htaccess
이라는 태그가 붙어 있기 때문에 아마도 .htaccess
모든 폴더에 파일이 현실적이지 않습니다.
솔루션 : 파일 이름 해결의 길을 부두의 모든 종류의 수행과 함께
그것이 나오는 것에 따라, mod_rewrite
는 또한 당신에게 당신이 필요 할 수 없었을 것입니다 다른 아파치 기능의 확장을 제공합니다 그렇지 않으면 사용합니다. , 이것은 실제로 매우 잘 작동
RewriteEngine On
# Force the MIME-type, but don't actually perform a rewrite
RewriteRule ^img/products/[^/]+/(hi|low)/[^/]+$ - [T=application/octet-stream]
하지만 기회는 아파치 설치가 당신보다 더 알고 있다고 생각하는 것이 좋다 : 적절한 예, 우리는 쉬운 해결책이는 T
플래그를 사용하여 만드는 MIME 타입을 설정할 수 있습니다 jpg
확장자를 image/jpeg
으로 매핑하는 기본 구성에 mimes.types
파일을 포함합니다. 이 값은 RewriteRule
보다 우선하므로이 경우 효과가 없습니다.
다른 해결책은 적절한 헤더와 이미지 데이터를 서버에서 클라이언트로 전달하여 중간에서 역할을하는 작은 스크립트를 만드는 것입니다. 당신은 그 스크립트에 요청을 전달하는 mod_rewrite
을 사용 :
스크립트 자체에 관해서는
RewriteEngine On
# For an added bit of sanity, make the test pattern even more restrictive
RewriteRule ^img/products/[A-Za-z._-]+/(hi|low)/[A-Za-z._-]\.[A-Za-z]+$ imageDownloader.php
이 터무니없이 긴 얻기에서이 대답을 유지하기 위해, 나는 그것의 것을 염두에두고, taking a look at this answer 제안 또는 other questions on this topic 중 하나 보안상의 이유로 다운로드 할 수있는 파일 이름을 화면에 표시해야합니다. 원래 요청 경로를 $_SERVER['REQUEST_URI']
에서 가져올 수 있으며이를 사용하여 올바른 이미지를 찾을 수 있습니다.
정확한 코드를 시작점으로 표시 할 수 있습니까? –
죄송합니다. 코드가 있었지만 코드로 표시되지 않았으므로 제대로 표시되지 않았습니다. –