2017-09-27 24 views
1

我有一个完美工作的IIS重定向规则。我一直在尝试将它转换成.htaccess格式以便在实时Web主机上使用,但收效甚微。.htaccess重定向具有原始URL和目标URL中的查询参数的URL的语法

规则的目的是将URL

http://my.web.host/user/username/?profiletab=main

的任何访问重定向到URL

http://my.web.host/network/?user=username

规则的IIS web.config文件格式如下:

<rule name="bounce" patternSyntax="ECMAScript" stopProcessing="true"> 
    <match url="^user/(.*)/$" /> 
    <conditions logicalGrouping="MatchAll" trackAllCaptures="false"> 
     <add input="{QUERY_STRING}" pattern="profiletab=main" /> 
     <add input="{QUERY_STRING}" pattern="um_action" negate="true" /> 
    </conditions> 
    <action type="Redirect" url="/network/?user={R:1}" appendQueryString="false" redirectType="Found" /> 
</rule> 

我已经试过的规则迄今一直变化

Redirect 301 /user/(.*)/?profiletab=main /network/?user=$1

RewriteCond %{THE_REQUEST} ^user/(.*)/\?profiletab=main$ [NC] 
RewriteRule network/?user=%1 [R=302,L] 

这两者都不工作过。所以我真的很感谢上面实现重定向所需的语法。 (我希望我至少接近!)

在此先感谢,乡亲们!

回答

1

您可以在.htaccess中使用这样的规则作为你的第一个规则:

RewriteEngibe On 

RewriteCond %{QUERY_STRING} (?:^|&)profiletab= [NC] 
RewriteRule ^user/([\w-]+)/?$ /network/?user=$1 [QSA,R=301,L] 
+1

是谢谢你,它工作的结果提供了基础。我很感谢你的帮助先生! –