-5,27 +5,69 |
* [http://www.seo-korea.com/%ED%91%9C%EC%A4%80-%ED%8E%98%EC%9D%B4%EC%A7%80-%EC%84%A4%EC%A0%95-link-rel-canonical/ 표준 페이지 설정, link rel=canonical | 검색엔진 최적화] |
* [http://support.google.com/webmasters/bin/answer.py?hl=ko&answer=139394 rel="canonical" 정보 - 웹마스터 도구 도움말] |
저 글과 같이 쇼핑몰에서 동일 제품 페이지인데 출력 옵션이 다르거나... 뭐 이런 경우가 유즈모드위키에서 흔히 일어나는 일은 아니지만, 그래도 하나의 위키 페이지를 출력하는 여러 형태의 주소가 있을 순 있겠는데, 이것들을 가장 일반적인 <code>wiki.pl/페이지이름</code> 형태의 태그를 붙여주면 검색 엔진에서 좀 챙겨 주려나? |
저 글과 같이 쇼핑몰에서 동일 제품 페이지인데 출력 옵션이 다르거나... 뭐 이런 경우가 유즈모드위키에서 흔히 일어나는 일은 아니지만, 그래도 하나의 위키 페이지를 출력하는 여러 형태의 주소가 있을 순 있겠는데, 이것들을 가장 일반적인 <code>wiki.pl/페이지이름</code> 형태의 태그를 붙여주면 검색 엔진에서 좀 챙겨 주려나? 하는 기대로 만든 패치 |
<code>wiki.pl/페이지이름</code>과 동일한 출력이 나오는 경우가 뭐가 있나부터 보자 |
* 일단 앞에 www 가 붙은 것과 안 붙은 것 (이건 검색엔진이 알아서 해주고 있지 않을까) |
* [[홈페이지주소간단히하기]]를 통해 들어온 것과 원래의 주소로 들어온 것 |
* 이미 웬만한 화면에는 noindex 태그를 넣은 상태라서, ([[/RobotsMetaTag]]) 사실 다음 페이지들은 애초에 검색이 안 되도록 한 상태 |
** 페이지의 과거 수정본들 |
** 페이지 편집 화면 |
** 검색 화면 |
** <code>action=browse&id=페이지이름</code> - 이건 검색되도록 해야 하나. 그런데 과거 수정본을 빼고 이것만 나오게 하려면 이거 좀 까다로와 보인다. |
* (생각해보니 굳이 로봇태그와 이 표준페이지 태그를 서로 겹치지 않게 쓸 이유가 없네. 무조건 특정 페이지에 관련된 화면은 다 해당 페이지의 기본 주소를 표시해 줄까) |
현재는 다음과 같은 경우에 한해서 표준페이지 정보를 출력한다. |
* Local:action=rc&days=3""과 같이, 최근변경내역을 보는 여러 가지 경우 경우(3일전, 30일전 등) |
* 다음과 같이, 변경내역 페이지(<code>$RCName</code>에 설정되어 있는 페이지, 또는 그것을 번역한 이름)의 주소를 표준페이지로 지정 |
{{{#!vim html |
<link rel="canonical" href="http://gypark.pe.kr/wiki/최근변경내역" /> |
}}} |
* Local:action=browse&id=UseModWiki소스수정/표준페이지""와 같이, <code>action=browse</code>를 써서 페이지 내용을 부가 정보와 같이 보는 경우(과거 리비전 보기, 두 리비전 내용 비교하기 등) |
* <code>wiki.pl/페이지이름</code> 형태의 URL을 표준페이지로 지정 |
{{{#!vim html |
<link rel="canonical" href="http://gypark.pe.kr/wiki/UseModWiki소스수정/표준페이지" /> |
}}} |
* 주소의 앞부분은 <code>$FullUrl</code>에 값이 있으면 그것을 쓴다. 이 값을 써서 <code>www.gypark.pe.kr</code>의 표준페이지를 <code>gypark.pe.kr</code>로 지정하는 식으로 할 수 있겠다. |
* 필수 요구 사항: |
* 선택 요구 사항: |
=== # 사용법 === |
=== # 부작용 === |
글쎄? |
=== # wiki.pl 수정 === |
수정 내용 |
{{{#!vim perl |
sub GetHtmlHeader { |
my ($title, $id) = @_; |
my ($dtd, $bgcolor, $html, $bodyExtra); |
# 아래 단락 추가 |
if ($FreeLinks) { |
$id = &FreeToNormal($id); |
} |
... |
} else { |
$html .= "<META NAME='robots' CONTENT='noindex,nofollow'/>\n"; |
} |
### rel=canonical head - 이 단락 추가 |
my $full_url = ($FullUrl ne '')?$FullUrl:$q->url(-full => 1); |
my $canonical eq ''; |
if ( ($action eq '' or $action eq 'browse') and $id ne '' ) { |
$canonical = $full_url.ScriptLinkChar().$id; |
} |
elsif ( $action eq 'rc' or $action eq 'bookmark' ) { |
$canonical = $full_url.ScriptLinkChar().T($RCName); |
} |
# history나 diff화면에서 표준 링크 지정. 이건 조금 과한가 |
# elsif ( (my $id_param = GetParam('id', '')) ne '' ) { |
# $canonical = $full_url.ScriptLinkChar().$id_param; |
# } |
$html .= qq|<link rel="canonical" href="$canonical" />| if $canonical; |
### 사용자 정의 헤더 |
$html .= $UserHeader; |
... |
} |
}}} |
=== # 추가 업데이트 내역 === |