如何将WORDPRESS热链接图像(exp:image.jpg)重定向到它所在的post/page?

如何将WORDPRESS热链接图像(exp:image.jpg)重定向到它所在的post/page?,image,wordpress,redirect,Image,Wordpress,Redirect,最近谷歌改变了图像搜索,结果大部分流量点击查看原始图像,并将其发送到直接图像文件 我已经更改了我的.htaccess,如果他们点击图片文件,我会停止所有热链接并重定向到我的主页 最近,我还尝试了是否可以重定向到图片所在的帖子或页面 通过以下代码 <?php require('../wp-blog-header.php'); $imageURL = strip_tags( $_GET['id'] ); if imageURL!== "") { $query = "SELECT

最近谷歌改变了图像搜索,结果大部分流量点击查看原始图像,并将其发送到直接图像文件

我已经更改了我的.htaccess,如果他们点击图片文件,我会停止所有热链接并重定向到我的主页

最近,我还尝试了是否可以重定向到图片所在的帖子或页面

通过以下代码

<?php 
require('../wp-blog-header.php');
$imageURL = strip_tags( $_GET['id'] );
if imageURL!== "") {    
  $query = "SELECT ID FROM $wpdb->posts WHERE post_type = 'attachment'AND post_parent > '0' AND guid = '$imageURL'";    
  $linkedImage = $wpdb-get_row($query);    
  $attachmentUrl = get_attachment_link($linkedImage->ID);    
  if($attachmentUrl !== "" && !is_numeric(stripos($attachmentUrl, "attachment_id=0"))) {
    header("HTTP/1.1 302 Found");        
    header("Location: ". $attachmentUrl);        
    exit;    
  }
}
$newUrl = get_site_url() . "/image-not-found";
header("HTTP/1.0 404 Not Found");
header("Location: " . $newUrl);
exit;
?>

例如,只有在请求的URL上有一个与图像URL完全匹配的ID参数时,您的代码才会工作

是这样吗?即使如此,您也不应该使用
id
,因为它是WP中其他内容的保留参数。在.htaccess中,您应该重定向到,例如。然后使用
$imageURL=$\u GET['image\u redirect']

其他注意事项:
strip\u标记
不能使字符串安全地用作SQL查询。在WordPress中,您可以使用
esc\u sql($string)
来实现这一点。另外,如果($imageUrl!='')
,您应该使用
,而不是
==。第5行有个错误,应该是
$wpdb->get_row
,您当前有一个减号。我想这些都是打字错误。最后,您不应该使用状态代码404的
Location:
标题