Wordpress:如何更改链接到图像源文件而不是附件链接?

时间:2013-10-11 12:19:36

标签: php image wordpress .htaccess permalinks

几年来,我使用了一个名为PhotoPress的Wordpress插件,它是GUI,用于上传和放置Wordpress帖子中的图像。该插件于2007年停止使用,因为Wordpress自己的媒体库已大大改进。

我现在遇到的麻烦是,使用PhotoPress上传了我的帖子中四到五年的图片,这些图片以特定的方式将图片附加到帖子上,与原生的Wordpress默认设置不同。

当我最近切换到一个新主题时,它引起了许多问题。

查看Google Webmastertools由于此情况的链接不良,我有超过4000个404错误。 (见下面的URL)

虽然图片显示在帖子中,但如果您直接点击旧帖子中的任何图片,而不是转到显示图片的页面,则会返回404错误。请参阅以下内容:

图片在帖子中正确显示:

http://www.hongkonghustle.com/fashion/3138/thierry-mugler-hong-kong-china-fashion-show-western-market-hk-rick-genest-zombie-boy-rico-nicolas-formichetti-lady-gaga-stylist-joyce-boutique-store-skeleton-tattoo/

但是,单击单个图像会返回404错误。

PhotoPress链接图像的方式如下所示:/?pagename = album&?pp_album = main& pp_cat = default& pp_image = zombie_boy_tattoo_lady_gaga_rick_genest.jpg

同时,实际存储图像源的目录路径如下:

http://www.hongkonghustle.com/wp-content/photos/zombie_boy_tattoo_lady_gaga_rick_genest.jpg

我不确定,但我认为这是因为图片没有直接链接到源文件 - 而是链接到POST ATTACHMENT链接。

我对如何解决这个问题感到很困惑。

图片最初(现在仍然)存储在wp-content / photos文件夹中,因此如果您点击直接网址,则可以使用。

但是,当我切换到我的新主题时,图像没有出现在媒体库中。

所以我批量重新上传了4000多张图片进入媒体库,他们现在坐在那里没有链接。

我对一种大规模重新附加源图像的方法感兴趣,并且摆脱了404错误。

我将如何做到这一点?

有什么想法?非常感谢您的建议!谢谢!

2 个答案:

答案 0 :(得分:1)

我最终在htaccess中进行了301重定向:

Options +Indexes
Options +FollowSymLinks
RewriteEngine on
RewriteCond  %{QUERY_STRING}  ^pagename=album&\??pp_album=main&pp_cat=default&pp_image=(.*)$
RewriteRule .* /wp-content/photos/%1? [L,R=301]

RewriteCond %{HTTP_HOST} ^hongkonghustle\.com
RewriteRule ^(.*)$ http://www.hongkonghustle.com/$1 [R=permanent,L]

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://www.hongkonghustle.com/$1/ [L,R=301]

RewriteEngine On  
RewriteBase / 
<Files wp-config.php>
Deny from all
</Files>

<Files wp-config.php>
Deny from all
</Files>
Options +Indexes
IndexOptions -FancyIndexing


# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

答案 1 :(得分:0)

每当有index.php个查询字符串时,如何对新主题pp_image执行301永久重定向?

您可以重定向

http://www.hongkonghustle.com/?pagename=album&?pp_album=main&pp_cat=default&pp_image=zombie_boy_tattoo_lady_gaga_rick_genest.jpg

http://www.hongkonghustle.com/wp-content/photos/zombie_boy_tattoo_lady_gaga_rick_genest.jpg

$_GET['pp_image']附加到http://www.hongkonghustle.com/wp-content/photos/ content_url()?)

只需确保重定向在输出发送之前完成,PHP输出缓冲区就可以派上用场。

希望有所帮助。


可能有用的链接: