2013-07-18 3 views
0

메신저 문서 이미지에서 리디렉션 htaccess로하지만, 문서의 이미지 reddit.com에 뜨거운가 링크되고내가 기사에 레딧에서 얻을 트래픽을 리디렉션하려고

이 괜찮습니다하지만 메신저 프로그래머 궁금 사용자가 같은 경로로 reddit.com에 이미지를 클릭하면 그 방법이 :

http://mysite.com/i/12345.jpg 내가이 일을 눈치 챘 http://mysite.com/r/12345

있는 유일한 위치에 성공적으로 이미지를 가지고있는 livememe.com입니다 리디렉션 on reddit on 클릭하면 기사로 리디렉션됩니다. 예를 들면 :

http://www.livememe.com/36opcf5.jpghttp://www.livememe.com/36opcf5

및 메신저 비슷한 일을하려고에 리디렉션합니다. 이 리디렉션은 해당 URL로 바로 이동할 때마다 발생합니다.

답변

1

이 코드보십시오 :

RewriteEngine On 
RewriteRule ^i/([a-zA-Z0-9]+)\.(jpe?g|JPE?G)$ /r/$1 [R=301] 
+0

영숫자 문자도 가능합니까? like mysite.com/i/12ab3c.jpg – user2360599

+0

내 코드가 업데이트되었습니다. –

+0

이 작품,하지만 조금 잘 내 사이트에서 이러한 이미지 중 일부를 구현하고이 깨진 이미지를 렌더링 – user2360599

0

난 당신이 요청 이후 몇 개월되었습니다 알고,하지만 당신은 여전히 ​​해결책을 필요로하는 경우, 나는 대답을 발견했다. 몇 시간 동안 어떻게되는지를 찾으려고 노력했지만, 실패했습니다. 그래서 나는 내 자신의 해결책을 찾아야했습니다. 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() 부분)에 따라 조정하십시오. 또는 해당 게시물이 있는지 확인하기 위해 데이터베이스를 확인할 수 있습니다. 글쎄, 네가 그 아이디어를 얻은 것 같아. 그것이 어떻게 이루어 졌는지. 희망이 도움이됩니다.