从nginx中的URL中删除#

时间:2016-01-14 06:17:22

标签: regex nginx rewrite

我正在从旧网站重定向网址。特别是一组链接用于视频播放器的开始和停止时间。

http://foo.com/index.php?option=com_tvwplayer&eventID=2015020086#start=3263&stop=5621

我能够使用以下方法重定向基数:

if ($option ~ com_tvwplayer){
   set $eventID $arg_eventID;
   set $args '';
   set $nArg '?customID=';
   rewrite ^.*$ $uri/watch/$nArg$eventID  permanent;
}

这适用于:

http://foo.com/index.php?option=com_tvwplayer&eventID=2015020086

将其更改为:

http://foo.com/watch/?customID=2015020086

但是,时间指示器的URL中的#需要删除或替换为&为了使它看起来像这样:

http://foo.com/watch/?customID=2015020086&start=3263&stop=5621

任何想法或花哨的RegEx让它发挥作用?

1 个答案:

答案 0 :(得分:-1)

您可以尝试sed

URL="http://foo.com/index.php?option=com_tvwplayer&eventID=2015020086#start=3263&stop=5621"
NEW_URL=`echo $URL | sed 's/#/&/g'`
echo $NEW_URL

此代码会将包含违规#的URL发送到sed,找到并替换所有带有&的s并将其保存到名为{{1}的新变量中}。