2017-09-27 2 views
1

J'ai une règle de redirection IIS qui fonctionne parfaitement. J'ai essayé de le convertir en format .htaccess à utiliser sur l'hôte web en direct, avec peu de succès.Syntaxe de redirection .htaccess pour les URL avec des paramètres de requête dans les URL d'origine et cible

Le but de la règle est de rediriger tout accès de l'URL

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

à l'url

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

Le format IIS web.config de la règle est la suivante :

<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> 

Ce que j'ai essayé jusqu'ici a été la règle des variations sur

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

et aussi

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

ni qui ont travaillé. Donc j'apprécierais vraiment de l'aide avec la syntaxe nécessaire pour réaliser la redirection ci-dessus. (J'espère que je suis au moins proche!)

Merci d'avance, les gens!

Répondre

1

Vous pouvez utiliser cette règle comme première règle .htaccess:

RewriteEngibe On 

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

Oui merci, il a fourni la base d'un résultat de travail. J'apprécie votre aide monsieur! –