-
- 1. rel=canonical 표준 페이지 태그
-
-
- 1.1. 부작용
-
- 1.2. wiki.pl 수정
-
- 1.3. 추가 업데이트 내역
-
- 1.4. 사용자 의견
-
1. rel=canonical 표준 페이지 태그
저 글과 같이 쇼핑몰에서 동일 제품 페이지인데 출력 옵션이 다르거나... 뭐 이런 경우가 유즈모드위키에서 흔히 일어나는 일은 아니지만, 그래도 하나의 위키 페이지를 출력하는 여러 형태의 주소가 있을 순 있겠는데, 이것들을 가장 일반적인 wiki.pl/페이지이름
형태의 태그를 붙여주면 검색 엔진에서 좀 챙겨 주려나? 하는 기대로 만든 패치
현재는 다음과 같은 경우에 한해서 표준페이지 정보를 출력한다.
- action=rc&days=3과 같이, 최근변경내역을 보는 여러 가지 경우 경우(3일전, 30일전 등)
- 다음과 같이, 변경내역 페이지(
$RCName
에 설정되어 있는 페이지, 또는 그것을 번역한 이름)의 주소를 표준페이지로 지정
<link rel="canonical" href="http://gypark.pe.kr/wiki/최근변경내역" />
<link rel="canonical" href="http://gypark.pe.kr/wiki/UseModWiki소스수정/표준페이지" />
- 주소의 앞부분은
$FullUrl
에 값이 있으면 그것을 쓴다. 이 값을 써서 www.gypark.pe.kr
의 표준페이지를 gypark.pe.kr
로 지정하는 식으로 할 수 있겠다.
글쎄?
1.2. wiki.pl 수정
sub GetHtmlHeader {
my ($title, $id) = @_;
my ($dtd, $bgcolor, $html, $bodyExtra);
if ($FreeLinks) {
$id = &FreeToNormal($id);
}
...
} else {
$html .= "<META NAME='robots' CONTENT='noindex,nofollow'/>\n";
}
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);
}
$html .= qq|<link rel="canonical" href="$canonical" />| if $canonical;
$html .= $UserHeader;
...
}
1.3. 추가 업데이트 내역
html head 부분을 출력하는 시점에서 처리해야 하니 이래저래 좀 애매해지네...
이 패치를 하려다가 엉뚱한 곳에서 버그들을 속속 발견하고 있다 -_-;
위키위키분류