我有一个完美运行的IIS重定向规则。我一直试图将其转换为.htaccess格式,以便在实时网络主机上使用,但收效甚微。
规则的目的是重定向对URL的任何访问
http://my.web.host/user/username/?profiletab=main
到网址
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]
两者都没有奏效。因此,我非常感谢您对实现上述重定向所需的语法提供一些帮助。 (我希望我至少接近!)
提前谢谢,伙计们!
答案 0 :(得分:1)
您可以将此规则用作.htaccess中的第一条规则:
RewriteEngibe On
RewriteCond %{QUERY_STRING} (?:^|&)profiletab= [NC]
RewriteRule ^user/([\w-]+)/?$ /network/?user=$1 [QSA,R=301,L]