Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 在IIS中使用正则表达式拆分URL_Regex_Url_Iis_Url Rewriting - Fatal编程技术网

Regex 在IIS中使用正则表达式拆分URL

Regex 在IIS中使用正则表达式拆分URL,regex,url,iis,url-rewriting,Regex,Url,Iis,Url Rewriting,我在使用正则表达式拆分URL时面临挑战 我想更改URL部分的中间部分,因为我们更改了站点页面的URL https://test.company.com/about/news/2015/test/award.aspx 上述给定的URL需要替换如下: https://test.company.com/en/about/media/news/2015/test/award.aspx 我想在IIS中使用正则表达式实现此功能 我在IIS的URL重写中尝试了下面的代码

我在使用正则表达式拆分URL时面临挑战

我想更改URL部分的中间部分,因为我们更改了站点页面的URL

      https://test.company.com/about/news/2015/test/award.aspx
上述给定的URL需要替换如下:

      https://test.company.com/en/about/media/news/2015/test/award.aspx
我想在IIS中使用正则表达式实现此功能

我在IISURL重写中尝试了下面的代码

      about/news/2015(.*.+?)

请根据需要帮助解决此问题,提前感谢。

正则表达式引擎获取字符串时不带主机和协议,从
关于开始。因此,您需要从这个固定字符串开始匹配,捕获需要插入所需值并使用的部分

^(about)(/news/2015/)
取代

en/{R:1}/media{R:2}
其中
{R:1}
指的是
关于
{R:2}
指的是
/news/2015/


下面是一个示例。

正则表达式引擎获取不带主机和协议的字符串,从
about
开始。因此,您需要从这个固定字符串开始匹配,捕获需要插入所需值并使用的部分

^(about)(/news/2015/)
取代

en/{R:1}/media{R:2}
其中
{R:1}
指的是
关于
{R:2}
指的是
/news/2015/


以下是一条。

您可以尝试以下规则:

 <rule name="rule11-1" stopProcessing="true">
                <match url="^about/news/2015/(.*)" />
                <conditions>
                    <add input="{REQUEST_URI}" pattern="^/about/(.*)" />
                </conditions>
                <action type="Redirect" url="https://test.company.com/en/about/media/{C:1}" />
            </rule>


您可以尝试以下规则:

 <rule name="rule11-1" stopProcessing="true">
                <match url="^about/news/2015/(.*)" />
                <conditions>
                    <add input="{REQUEST_URI}" pattern="^/about/(.*)" />
                </conditions>
                <action type="Redirect" url="https://test.company.com/en/about/media/{C:1}" />
            </rule>


我从未使用过IIS,但我知道regex。你能把它分成多个捕获组吗?类似于
(^.*\.com/)(about/)(.*$)
的内容,然后将其替换为类似于
$1en/$2media/$3
?IIS中的语法可能略有不同。有帮助吗?我从未使用过IIS,但我知道正则表达式。你能把它分成多个捕获组吗?类似于
(^.*\.com/)(about/)(.*$)
的内容,然后将其替换为类似于
$1en/$2media/$3
?IIS中的语法可能略有不同。是否有帮助?