난 당신이 요청 이후 몇 개월되었습니다 알고,하지만 당신은 여전히 해결책을 필요로하는 경우, 나는 대답을 발견했다. 몇 시간 동안 어떻게되는지를 찾으려고 노력했지만, 실패했습니다. 그래서 나는 내 자신의 해결책을 찾아야했습니다. Livememe는 htaccess로 리다이렉트를하지 않고 PHP로 처리한다. 리퍼러의 차이를 볼 수 없으므로 그림이 포함되어 있는지 또는 사용자가 링크를 클릭했는지 여부와 관계없이 동일한 내용을 확인해야합니다. 그리고 내가 볼 수있는 유일한 차이점은 HTTP_ACCEPT 헤더입니다. 리소스가 이미지로 사용되면 "text/html"값을 가진 HTTP_ACCEPT를 전송하지 않으며 "image/jpeg"또는 그와 비슷한 것입니다. 그래서 당신이 할 것은이 같은 것입니다 : 첫째,이와 htaccess로 파일을 만들 : 파일이 발견되지 않는 경우
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) /redirect.php?q=$1 [L]
그래서, redrect.php가로드
(당신의 URL이 동일하게 유지 책략). redirect.php 안에 다음과 같이 입력하십시오 :
$accept = explode(',', $_SERVER['HTTP_ACCEPT']);
$file = $_GET['q'];
$file_info = pathinfo($file);
$url = $file_info['filename'];
$ext = $file_info['extension'];
$check_html = array_search('text/html', $accept);
if (file_exists("$url.html")) {
if ($check_html !== FALSE) header("location: http://yourdmain.com/$url"); // location of URL you want to redirect to
else header("location: http://i.yourdomain.com/$url.$ext"); // loction of image file
}
else {
header('HTTP/1.0 404 Not Found');
print 'File not found';
}
서버 (file_exists() 부분)에 따라 조정하십시오. 또는 해당 게시물이 있는지 확인하기 위해 데이터베이스를 확인할 수 있습니다. 글쎄, 네가 그 아이디어를 얻은 것 같아. 그것이 어떻게 이루어 졌는지. 희망이 도움이됩니다.
영숫자 문자도 가능합니까? like mysite.com/i/12ab3c.jpg – user2360599
내 코드가 업데이트되었습니다. –
이 작품,하지만 조금 잘 내 사이트에서 이러한 이미지 중 일부를 구현하고이 깨진 이미지를 렌더링 – user2360599