基于查询重定向

时间:2016-10-18 20:35:36

标签: perl

我有以下代码:

my $uri=$ENV{'REQUEST_URI'};
if ($uri=~/\/\?render=xml){
 redirect(301,"Moved Permanently","urlsubstring");
}

我想要实现的目标是,如果用户访问我网站的任何位置,如果网页看起来像http://wwww.something.com/about/?render=xml,我们会在没有render=xml portion的情况下执行重定向到网址。正如您所看到的那样,我关注的是脚本的render=xml查询部分。

所以,

我需要更新逻辑以执行重定向,然后我将需要一个基于?render=xmlurl的位置的子字符串。

这是我的子字符串代码:

$pos = index($uri,"?render=xml");
$newuri = substr($uri,0,$pos);

我对perl很新,所以我只是在寻找一些帮助

1 个答案:

答案 0 :(得分:0)

首先,您尚未终止搜索模式。

my $uri=$ENV{'REQUEST_URI'};
if ($uri=~/\/\?render=xml/){
 redirect(301,"Moved Permanently","urlsubstring");
}

但您可以直接搜索并替换。 试试这个。

    $uri = "http://www.something.com/about/?render=xml";
    $uri =~ s/\?render\=xml/newurlstring/g;
    print $uri

未经测试,但您很可能会将此类内容作为您的代码。

my $uri=$ENV{'REQUEST_URI'};
$uri =~ s/\?render\=xml/newurlstring/g;

将$ uri作为http://www.something.com/about/newurlstring

返回

或者你只想转储?render = xml部分,只使用$ uri作为http://www.something.com/about/

my $uri=$ENV{'REQUEST_URI'};
$uri =~ s/\?render\=xml//g;