2017-09-27 58 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

是謝謝你,它工作的結果提供了基礎。我很感謝你的幫助先生! –