2009-07-02 3 views
1

Ich möchte meine Querystring für ausgewählte Sprache rewirte.URL Rewrite Sprache Querystring

Ich habe diese URL: www.example.com/?lang=en, und wollen es

www.example.com/en werden Sie auf allen Seiten neu schreiben sollte. Also www.example.com/contact.aspx?lang=de wäre www.example.com/en/contact.aspx

Gibt es eine allgemeine Rewrite-Regel dafür?

Antwort

2

Dieses funktioniert.

<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

meine Syntax kann ein wenig aus, aber Sie könnten wahrscheinlich etwas tun:

<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

Das scheint nicht zu funktionieren. Gibt mir 404 mit example.com/en/contact.aspx – MartinHN

+0

Ich habe noch nicht mit URL-Re-Writting gespielt, aber würde die URL des Action-Tags nicht ein führendes '/' vor dem führenden '/' in benötigen die URL des Übereinstimmungs-Tags? –

0

Bitte beachten Sie mit dem folgenden:

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

Funktioniert nicht. Es gibt mir nur 404, nicht wirklich neu geschrieben. – MartinHN