为了提高性能,我将所有图像都用作webp文件,但我已经停止使用并从FTP中删除了它们(仅.webp文件)。现在有404个错误的问题。我想重定向所有。将webp文件转换为jpg、png、gif等。
例如:
https://www.example.com/wp-content/uploads/2019/04/file.jpg.webp
https://www.example.com/wp-content/uploads/2019/04/file.jpeg.webp
https://www.example.com/wp-content/uploads/2019/04/file.gif.webp
https://www.example.com/wp-content/uploads/2019/04/file.png.webp
到。。。
https://www.example.com/wp-content/uploads/2019/04/file.jpg
https://www.example.com/wp-content/uploads/2019/04/file.jpeg
https://www.example.com/wp-content/uploads/2019/04/file.gif
https://www.example.com/wp-content/uploads/2019/04/file.png
重定向插件:
Source URL: ^(?!.*-[0-9]{1,4}x[0-9]{1,4}).*\\.(?:jpg.webp)
Target URL: https://www.example.com/wp-content/uploads/$1/$2/$3.$4
但它没有起作用。另外,我用htaccess进行了尝试,但再次失败。有办法安排吗?
SO网友:Pat J
如果我读对了,你的正则表达式中只有两项()
, 也就是说$1
和$2
有任何意义。
我复制了您的示例文本并转到https://regex101.com/ (注意:这不是背书)尝试组装一个覆盖所有图像的正则表达式。以下是我的结论:
Pattern: ^(.*\\/[0-9]{1,4}\\/[0-9]{1,2}\\/)([^\\.]+)\\.(jpg|jpeg|gif|png)\\.webp
Replacement: $1$2.$3
这是使用PCRE标准,显然在PHP中使用了该标准<;7.3。如果您使用的是PHP 7.3或7.4(或更高版本),或者如果您想在
.htaccess
文件