This is because Sitecore strips it out of the URL once it identifies it as a valid language code. It happens here:
<processor type="Sitecore.Pipelines.PreprocessRequest.StripLanguage, Sitecore.Kernel" />
Which is a processor in the <preprocessRequest>
pipeline, which runs before the <httpRequestBegin>
pipeline that you have hooked in to.
The code in question looks like this:
Language language = StripLanguage.ExtractLanguage(args.Context.Request);
if (language == (Language) null)
return;
Context.Language = language;
Context.Data.FilePathLanguage = language;
StripLanguage.RewriteUrl(args.Context, language);
Depending on what you are trying to do; you should probably just check for the "base" url (without the language qualifier) and then in your Landing Page Resolver check the value of Context.Data.FilePathLanguage
. If this returns non NULL you will know that a language code was part of the URL and has been removed by the StripLanguageProcessor
.