NextGen图库Lightbox-社交共享URL重定向

时间:2019-11-25 作者:Dipak G.

我正在我的WordPress网站上使用NextGEN Gallery Pro-Lightbox的社交共享功能,它实际上是在社交媒体上创建并共享临时创建的url(第一个url)。不知何故,重定向不起作用,当我访问第一个url时会生成一个空白页面。我正在考虑添加一个手动htaccess重写规则,或者最好是WordPress函数来实现这种重定向。

如何在中添加这样的重写规则.htaccess 或者WordPress钩子将第一个url重定向到第二个url?

重定向第一个url:

example.com/nextgen-share/121212/8989/full?uri=/landscape-photography/

第二个url:

example.com/landscape-photography/#gallery/121212/8989
我试过几本手册.htaccess 重写规则,但没有乐趣。任何意见都将不胜感激。

1 个回复
最合适的回答,由SO网友:MrWhite 整理而成

您可以在中执行以下操作.htaccess 在现有WordPress指令之前。

RewriteCond %{QUERY_STRING} ^uri=(/[^&]+)
RewriteRule ^nextgen-share/(\\d+/\\d+)/full$ %1#gallery/$1 [QSD,NE,R,L]
TheRewriteRule 模式仅与URL路径匹配,因此需要前面的RewriteCond 指令,以匹配URL的查询字符串部分。

如果/121212/8989/ 部分总是由6位和4位组成,那么您可以在正则表达式中进行更严格的限制。ie。(\\d{6}/\\d{4}). 同样,如果uri 参数值由有限的字符子集(可能是单个路径段)组成,然后这可以变得更加严格。

%1 是对前面中捕获的子模式的反向引用RewriteCond 指令,即uri URL参数。

$1 是对中捕获的组的反向引用RewriteRule 图案,例如。121212/8989 在您的示例URL中。

这个NE (noescape) 需要标记以防止# 在响应中进行URL编码(并被视为URL路径的一部分)。

这个QSD (查询字符串丢弃)标志(Apache 2.4+)是从重定向URL中删除查询字符串所必需的,否则请求URL中的查询字符串将按原样复制到替换的末尾。如果您仍然使用Apache 2.2,那么可以附加? 而是添加到替换的末尾(本质上是附加一个空查询字符串)。

这是一个临时(302)重定向。

UPDATE: 这只在121212时有效,但如果它是字母数字(abc121212)怎么办

要允许a-z(小写)和数字,则需要修改RewriteRule 图案到^nextgen-share/([0-9a-z]+/[0-9a-z]+)/full$. 如果还需要允许大写字母,请更改[0-9a-z][0-9a-zA-Z]. 您也可以使用\\w 此处改为“word characters”速记字符类,与[0-9a-zA-Z_] - 注意额外的_ (下划线)。

因此,这变成:

RewriteCond %{QUERY_STRING} ^uri=(/[^&]+)
RewriteRule ^nextgen-share/(\\w+/\\w+)/full$ %1#gallery/$1 [QSD,NE,R,L]

相关推荐

使用重定向插件与直接.htaccess条目的加载时间开销

偶尔,当我继承别人开发的WordPress项目时,会安装一个插件来执行重定向。在我自己的项目中,我将所有重定向直接输入到。htaccess文件。我的问题是重定向插件是否存在加载时间问题?在过去的某个时候,我检查了。htaccess文件,并注意到重定向不在该文件中。因此,我假设它们存储在数据库中,从而导致进一步的数据库调用。我还认为,要运行数据库中的重定向,WordPress必须首先加载。似乎在重定向运行之前加载WordPress会导致进一步的加载时间问题。