You may try get NodeID from DocumentAlias then get node by NodeID
TreeNode GetNodeFromAlias(string aliasPath)
{
TreeProvider tree = new TreeProvider(MembershipContext.AuthenticatedUser);
TreeNode page = null;
page = tree.SelectNodes()
.Path(nodePath, PathTypeEnum.Explicit)
.OnCurrentSite()
.FirstOrDefault();
if(page != null){
return page;
}
// try get NodeID from DocumentAliases
var alias = DocumentAliasInfoProvider.GetDocumentAliases()
.WhereEquals("AliasURLPath", aliasPath)
.FirstOrDefault();
if(alias == null)
{
return null;
}
return tree.SelectNodes()
.WhereEquals("NodeID", alias.AliasNodeID)
.OnCurrentSite()
.FirstOrDefault();
}