2009-07-02 3 views
1

Je souhaite recréer ma chaîne de requête pour la langue sélectionnée.URL de réécriture de la chaîne de queues

J'ai cette URL: www.example.com/?lang=en, et que vous voulez qu'il soit www.example.com/en~~V~~singular~~3rd

Il devrait réécrire sur toutes les pages. Donc, www.example.com/contact.aspx?lang=en serait www.example.com/en/contact.aspx

Existe-t-il une règle générale de réécriture pour cela?

Répondre

2

Celui-ci fonctionne.

<rule name="Rewrite Language"> 
    <match url="([a-z]{2})(.*)" /> 
    <conditions logicalGrouping="MatchAll"> 
     <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> 
     <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> 
    </conditions> 
    <action type="Rewrite" url="{R:2}?lang={R:1}" /> 
</rule> 
0

ma syntaxe peut être un peu hors mais vous pourriez probablement faire quelque chose comme ceci:

<rewrite> 
    <rules> 
    <rule name="Rewrite Language"> 
     <match url="/([a-z]+)/([_0-9a-z-]+)" /> 
     <action type="Rewrite" url="{R:2}?lang={R:1}" /> 
    </rule> 
    </rules> 
</rewrite> 
+0

Cela ne semble pas fonctionner. Donne-moi 404 avec example.com/fr/contact.aspx – MartinHN

+0

Je n'ai pas encore joué à la réécriture d'URL, mais l'url de l'étiquette de l'action ne nécessite pas un "/" devant pour correspondre au premier "/" l'URL de la balise de match? –

0

S'il vous plaît envisager d'utiliser les éléments suivants:

<rewrite> 
    <rules> 
    <rule name="Rewrite Language"> 
     <match url="/([a-z]{2})(.*)" /> 
     <action type="Rewrite" url="{R:2}?lang={R:1}" /> 
    </rule> 
    </rules> 
</rewrite> 
+0

Ne fonctionne pas. Il me donne juste 404, ne réécrit pas vraiment. – MartinHN

Questions connexes