i'm facing problem url-rewrite module right know.
what want achieve: have website address "test-server" right now. when url typed in want change url "test-server/de" or "test-server/en" through {http_accept_language} variable. should work on url "test-server" when user on sub-page "test-server/de/" can manually change url "test-server/en/" without getting redirected again.
this have right know:
<rewrite> <rules> <rule name="togermanpage" enabled="true" stopprocessing="true"> <match url=".*" /> <conditions logicalgrouping="matchall" trackallcaptures="false"> <add input="{http_accept_language}" pattern="^de" /> <add input="{url}" pattern=".+test-server" /> </conditions> <action type="redirect" url="{r:0}/{http_accept_language}" appendquerystring="true" /> </rule> <rule name="toenglishpage" enabled="true" stopprocessing="true"> <match url="^test-server" /> <action type="redirect" url="http://test-server/en" /> <conditions logicalgrouping="matchany" trackallcaptures="false"> <add input="{http_accept_language}" pattern="^de" negate="true" /> </conditions> </rule> </rules> </rewrite> my problem if type following: won't recognize url, same goes {url} parameter inside conditions.
looking @ rule...
<match url=".*" /> <conditions logicalgrouping="matchall" trackallcaptures="false"> <add input="{http_accept_language}" pattern="^de" /> <add input="{url}" pattern=".+test-server" /> </conditions> <action type="redirect" url="{r:0}/{http_accept_language}" appendquerystring="true" /> the match url .*, match resources. if want redirect work http(s)://test-server/, should specify blank resource (url="^$").
you use {http_host} instead of {url} match hostname (without worrying http/https).
also, redirect url using {r:0} match/resource url. http://test-server, match url blank, since no resource path specified. should able remove {r:0} altogether redirect url, though, since need redirect de or en. so, try this:
<match url="^$" /> <conditions> <add input="{http_host}" pattern="^test-server$" /> </conditions> <action type="redirect" url="{http_accept_language}" appendquerystring="true" /> that should match http(s)://test-server , redirect either:
http(s)://test-server/en or
http(s)://test-server/de depending on value of {http_accept_language}.
Comments
Post a Comment