2013-07-18 20 views
0

我嘗試將流量重定向我從書籤交易得到的文章,但文章中的圖像正在對reddit.com熱鏈接的.htaccess從圖像重定向到文章

這是不錯,但我想知道是否孤單一種方式,當用戶在圖像上單擊reddit.com與像路徑:

http://mysite.com/i/12345.jpg重定向到http://mysite.com/r/12345

的唯一網站,我已經注意到要成功做到這一點是livememe.com具有圖像在點擊時,reddit會重定向到文章。例如:

http://www.livememe.com/36opcf5.jpg重定向到http://www.livememe.com/36opcf5

和IM試圖做類似的事情。我注意到,無論何時直接訪問該網址,都會發生此重定向。

回答

1

試試這個代碼:

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

這也適用於字母數字字符?像mysite.com/i/12ab3c.jpg – user2360599

+0

我更新了我的代碼。 –

+0

這個工作,但有點,以及我在我的網站中實現了一些這些圖像,這使得圖像中斷 – user2360599

0

我知道它已經有幾個月既然你問了,但是如果你仍然需要一個解決方案,我找到了答案。試圖找到幾個小時完成它,但沒有成功,所以我不得不提出我自己的解決方案。 Livememe不會用htaccess重定向,他們用PHP來完成。由於您無法看到引薦鏈接中的區別,因此無論圖片是嵌入的還是用戶單擊鏈接的,都必須檢查其他內容。我看到的唯一區別是HTTP_ACCEPT頭。如果一個資源被用作圖像,它將不會發送HTTP_ACCEPT值爲「text/html」,它將是「image/jpeg」或類似的東西。所以,你做的是這樣的:首先,創建與此.htaccess文件:

RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule (.*) /redirect.php?q=$1 [L] 

所以,如果沒有找到一個文件,redrect.php被加載(詭計您的網址保持不變)。並在裏面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()部分)進行調整。或者你可以檢查數據庫,看看這個帖子是否存在。好吧,我想你明白了,那是怎麼完成的。希望有所幫助。