url rewriting - NextGEN Gallery Lightbox - Social Share URL Redirect

I am using NextGEN Gallery Pro - Lightbox's Social Share feature on my WordPress site which actually create and sha

I am using NextGEN Gallery Pro - Lightbox's Social Share feature on my WordPress site which actually create and share a temporarily created url (first-url) on social media. Somehow the redirect doesn't work and generates a blank page when I visit the first-url. I am thinking to add a manual htaccess rewrite rule or preferably WordPress function to make this redirect possible.

How can I add such rewrite rule in .htaccess or a WordPress hook to redirect first-url to second-url?

Redirect first-url:

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

to

second-url:

example/landscape-photography/#gallery/121212/8989

I've tried several manual .htaccess rewrite rules but no joy. Any inputs will be much appreciated.

I am using NextGEN Gallery Pro - Lightbox's Social Share feature on my WordPress site which actually create and share a temporarily created url (first-url) on social media. Somehow the redirect doesn't work and generates a blank page when I visit the first-url. I am thinking to add a manual htaccess rewrite rule or preferably WordPress function to make this redirect possible.

How can I add such rewrite rule in .htaccess or a WordPress hook to redirect first-url to second-url?

Redirect first-url:

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

to

second-url:

example/landscape-photography/#gallery/121212/8989

I've tried several manual .htaccess rewrite rules but no joy. Any inputs will be much appreciated.

Share Improve this question edited Nov 25, 2019 at 17:39 MrWhite 3,8911 gold badge20 silver badges23 bronze badges asked Nov 25, 2019 at 14:24 Dipak G.Dipak G. 2282 silver badges9 bronze badges 2
  • "Somehow the redirect doesn't work and generates a blank page" - What URL does it redirect to? Or does it not redirect at all? – MrWhite Commented Nov 25, 2019 at 15:21
  • No, it doesn't redirect at all and stays on first-url with a blank page. – Dipak G. Commented Nov 25, 2019 at 16:01
Add a comment  | 

1 Answer 1

Reset to default 1

You could do something like the following in .htaccess before the existing WordPress directives.

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

The RewriteRule pattern only matches against the URL-path, so you need the preceding RewriteCond directive in order to match the query string portion of the URL.

If the /121212/8989/ part always consists of 6 digits and 4 digits then you can be more restrictive in the regex. ie. (\d{6}/\d{4}). Likewise, if the uri parameter value consists of a limited subset of characters - perhaps a single path segment - then again this can be made more restrictive.

%1 is a backreference to the captured subpattern in the preceding RewriteCond directive, ie. the value of the uri URL parameter.

$1 is a backreference to captured group in the RewriteRule pattern, eg. 121212/8989 in your example URL.

The NE (noescape) flag is required to prevent the # being URL encoded in the response (and being seen as part of the URL-path).

The QSD (Query String Discard) flag (Apache 2.4+) is required to remove the query string from the redirected URL, otherwise the query string from the requested URL is copied as-is onto the end of the substitution. If you are still on Apache 2.2 then you can append a ? to the end of the substitution instead (essentially appending an empty query string).

This is a temporary (302) redirect.

UPDATE: This will only work if 121212 but what if it's alpha-numeric (abc121212)

To allow a-z (lowercase) and digits then you would need to modify the RewriteRule pattern to ^nextgen-share/([0-9a-z]+/[0-9a-z]+)/full$. If you need to allow uppercase letters as well then change [0-9a-z] to [0-9a-zA-Z]. You could also use the \w "word characters" shorthand character class here instead, which is the same as [0-9a-zA-Z_] - note the additional _ (underscore).

So, this becomes:

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

发布者:admin,转转请注明出处:http://www.yc00.com/questions/1744966221a4603695.html

相关推荐

  • url rewriting - NextGEN Gallery Lightbox - Social Share URL Redirect

    I am using NextGEN Gallery Pro - Lightbox's Social Share feature on my WordPress site which actually create and sha

    1天前
    70

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信