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

Php Wordpress:如何将链接更改为图像源文件而不是附件链接?,php,image,wordpress,.htaccess,permalinks,Php,Image,Wordpress,.htaccess,Permalinks,几年来,我一直使用一个名为PhotoPress的Wordpress插件,它是一个GUI,用于上传图像并将其放置在Wordpress帖子中。随着Wordpress自己的媒体库的极大改进,该插件于2007年停止使用 我现在遇到的问题是,我的帖子中有四五年的图片是使用PhotoPress上传的,PhotoPress以一种不同于本地Wordpress默认设置的特殊方式将图片附加到帖子中 当我最近切换到一个新主题时,它引起了许多问题 看看Google Webmastertools,我有超过4000+404

几年来,我一直使用一个名为PhotoPress的Wordpress插件,它是一个GUI,用于上传图像并将其放置在Wordpress帖子中。随着Wordpress自己的媒体库的极大改进,该插件于2007年停止使用

我现在遇到的问题是,我的帖子中有四五年的图片是使用PhotoPress上传的,PhotoPress以一种不同于本地Wordpress默认设置的特殊方式将图片附加到帖子中

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

看看Google Webmastertools,我有超过4000+404的错误,这是由于这种情况下的坏链接造成的。(参见下面的URL)

虽然图像显示在文章中,但如果您直接单击旧文章中的任何图像,而不是转到显示图像的页面,则返回404错误。请参见以下内容:

图像正确显示在帖子中:

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

PhotoPress链接图像的方式如下:/?pagename=album&?pp_album=main&pp_cat=default&pp_image=zombie\u boy\u纹身\u lady\u gaga\u rick\u genest.jpg

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

我不确定,但我认为这是因为图像没有直接链接到源文件,而是链接到后附件链接

我很困惑如何解决这个问题

这些图像最初(现在仍然)存储在wp content/photos文件夹中,因此,如果单击直接URL,它就可以工作

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

因此,我批量将4000多张图片重新上传到媒体库中,而它们现在处于未链接状态

我感兴趣的是一种大规模重新附加源图像的方法,并消除404错误

我将如何做到这一点


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

每当有
pp\u图像
查询字符串时,对新主题
index.php
执行301永久重定向如何

你可以重定向

通过将
$\u GET['pp\u image']
附加到(
content\u url()
?)

只要确保在发送输出之前执行了重定向,PHP输出缓冲区就会派上用场

希望有帮助


可能有用的链接:


每当出现
pp\u图像
查询字符串时,对新主题
index.php
执行301永久重定向如何

你可以重定向

通过将
$\u GET['pp\u image']
附加到(
content\u url()
?)

只要确保在发送输出之前执行了重定向,PHP输出缓冲区就会派上用场

希望有帮助


可能有用的链接:


我最终在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
选项+索引
选项+FollowSymLinks
重新启动发动机
RewriteCond%{QUERY\u STRING}^pagename=album&\?pp\u album=main&pp\u cat=default&pp\u image=(*)$
重写规则。*/wp content/photos/%1?[L,R=301]
重写cond%{HTTP_HOST}^hongkonghustle\.com
重写规则^(.*)$http://www.hongkonghustle.com/$1[R=永久性,L]
重写基/
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_URI}!(.*)/$
重写规则^(.*)$http://www.hongkonghustle.com/$1/[L,R=301]
重新启动发动机
重写基/
全盘否定
全盘否定
选项+索引
索引选项-繁体索引
#开始WordPress
重新启动发动机
重写基/
重写规则^index\.php$-[L]
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则/index.php[L]
#结束WordPress

我最终在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
选项+索引
选项+FollowSymLinks
重新启动发动机
RewriteCond%{QUERY\u STRING}^pagename=album&\?pp\u album=main&pp\u cat=default&pp\u image=(*)$
重写规则。*/wp content/photos/%1?[L,R=301]
重写cond%{HTTP_HOST}^hongkonghustle\.com
重写规则^(.*)$http://www.hongkonghustle.com/$1[R=永久性,L]
重写基/
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_URI}!(.*)/$
重写规则^(.*)$http://www.hongkonghustle.com/$1/[L,R=301]
重新启动发动机
重写基/
全盘否定
全盘否定
选项+索引
索引选项-繁体索引
#开始WordPress
重新启动发动机
重写基/
重写规则^index\.php$-[L]
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则/index.php[L]
#结束WordPress

谢谢@LongYC我会尝试一下,看看能否让它发挥作用。非常感谢!谢谢@LongYC,我会尝试一下,看看能否让它发挥作用。非常感谢!