Sitecore.NET 6.4.1로 구축 된 은행의 기존 웹 사이트에서 작업 중이며 별칭 문제가 있습니다. 그들은 별칭을 사용하여 은행가의 개인 페이지에보다 친숙한 URL을 설정합니다. 예 : www.domain.com/bankername은 www.domain.com/About/People/Banker-ID로 연결됩니다. 내가 겪고있는 문제는 실제 페이지에 링크 된 앨리어싱 된 페이지가 섹션의 모든 메타 데이터를 상속받지 않는다는 것입니다. 따라서 개별 은행가의 맞춤 메타 태그 (즉, 제목의 은행 이름)보다는 모든 사이트 기반 기본 메타 태그를 사용하고 있습니다. 메타 데이터는 실제 은행 페이지에 설정되며 www.domain.com/About/People/Banker-ID에 액세스 할 때 올바르게 작동합니다.별칭 메타 태그
링크 된 페이지의 페이지 콘텐츠 외에도 별칭이 메타 데이터를 상속받는 방법이 있습니까?
public List<string> getmetaDetails()
{
List<string> metaDetails = new List<string>();
string metaTitle = String.Empty;
string metaDesc = String.Empty;
string metaKeyword = String.Empty;
try
{
// get root home item
Sitecore.Data.Items.Item homeItem = Sitecore.Context.Database.GetItem("/sitecore/content/Home");
Sitecore.Data.Items.Item Item = homeItem;
// get Page array by url
string pageUrl = Sitecore.Web.WebUtil.GetRawUrl().TrimStart('/');
string[] pageArr = pageUrl.Split('/');
//Removes '?...' after the actual path.
for(int i=0; i<pageArr.Length; i++)
if (pageArr[i].Contains("?")) pageArr[i] = pageArr[i].Substring(0, pageArr[i].LastIndexOf('?'));
if (pageArr[0] == "Advice")
{
Sitecore.Data.Items.Item AdviceItem = Sitecore.Context.Database.GetItem("/sitecore/content/Home/Advice");
if (AdviceItem != null)
{
metaTitle = FieldRenderer.Render(AdviceItem, "Meta Title");
metaDesc = FieldRenderer.Render(AdviceItem, "Meta Description");
metaKeyword = FieldRenderer.Render(AdviceItem, "Meta Keywords");
}
if (pageArr.Length > 1)
{
if(!String.IsNullOrEmpty(pageArr[1]))
{
Feeds feed = new Feeds();
List<FeedItem> adviceFeed = new List<FeedItem>();
string sql = "SELECT * FROM `web_feeds` WHERE url='" + pageArr[1] + "'";
adviceFeed = feed.getFeedFromDB(sql);
if(adviceFeed.Count >0)
{
metaTitle = adviceFeed[0].title;
metaDesc = adviceFeed[0].description;
metaKeyword +=","+ adviceFeed[0].tag;
}
}
}
}
else
{
// loop threw page array to find the item
foreach (string page in pageArr)
{
Item = getCurrentHomeItem(page, Item);
if (Item != null)
{
metaTitle = FieldRenderer.Render(Item, "Meta Title");
metaDesc = FieldRenderer.Render(Item, "Meta Description");
metaKeyword = FieldRenderer.Render(Item, "Meta Keywords");
}
}
}
if (String.IsNullOrEmpty(metaTitle)) metaTitle = FieldRenderer.Render(homeItem, "Meta Title");
if (String.IsNullOrEmpty(metaDesc)) metaDesc = FieldRenderer.Render(homeItem, "Meta Description");
if (String.IsNullOrEmpty(metaKeyword)) metaKeyword = FieldRenderer.Render(homeItem, "Meta Keywords");
}
catch (Exception ex)
{
metaTitle = DEFAULT_TITLE;
metaDesc = DEFAULT_DESC;
metaKeyword = DEFAULT_KEYWORDS;
}
metaDetails.Add(metaTitle);
metaDetails.Add(metaDesc);
metaDetails.Add(metaKeyword);
return metaDetails;
}
메타 태그 생성에 사용되는 코드를 게시하는 것이 유용 할 수 있습니다. –
위 코드 제안 게시물에 동의합니다 :). – Younes