[관련 게시물]
https://www.mediawiki.org/wiki/Manual:Short_URL
https://www.mediawiki.org/wiki/Manual:Short_URL/LocalSettings.php
https://shorturls.redwerks.org/
[도움 받은 글]
https://zetawiki.com/wiki/미디어위키_간편URL_적용
Short URL에 대하여
우리는 웹브라우저로 웹문서를 볼 때 그 문서가 가지는 웹상 주소를 확인할 수 있습니다. 그런데 그 문서들이 지니는 주소는 꽤 길고 심지어는 각종 특수 기호도 쓰여 우리가 그 주소를 외우거나 직접 주소를 입력하여 방문하기가 번거롭습니다. 만약 이 주소가 짧다면 우리가 웹문서를 이용하기가 수월해질 것입니다.
이러한 생각에서 고안된 것이 바로 Short URL입니다. 이것을 우리는 짧은 주소, 단축 주소, 간편 URL, 단축 URL 등으로 다양하게 부릅니다.
이 Short URL을 쉽게 확인할 수 있는 것이 한국어 위키백과입니다. 한국어 위키백과 대문이 가지는 본래 주소는 아래와 같습니다.
그러나 우리가 보통 접하는 주소는 아래와 같습니다.
주소 구성이 간소화되어 알아보기가 손쉬워지고 주소 길이 자체도 짧아졌습니다.
이 Short URL은 기술상 몇 가지 장점을 가지는데요.
첫 번째로 실제 주소를 숨김으로써 보안에 유리합니다.
두 번째로 서버를 구성하는 소프트웨어 등이 변경될 때 주소를 안정적으로 유지될 수 있습니다.
세 번째로 방문자들이 읽기 쉽고 기억하여 입력하기가 쉽습니다.
네 번째로 적절히 구성한다면 검색엔진 최적화(SEO)에도 유리합니다.
이러한 이유로 많은 사이트들이 Short URL을 구성합니다.
이제 미디어위키에 이 Short URL을 구성하는 방법에 대해 알아보도록 하겠습니다.
Short URL 구성
미디어위키 간편 URL 소스 자동 생성
이 미디어위키를 구축할 정도의 지식과 경험을 가지고 계시는 분은 손쉽게 Short URL 구성 코드를 얻을 수 있는 방법이 있습니다.
미디어위키 간편 URL 소스 자동 생성 도우미 사이트
위 사이트를 방문하면 간단한 입력만으로 손쉽게 자신의 미디어위키 환경에 맞는 Short URL 구성 코드를 얻을 수 있습니다. 이 코드들을 위 사이트에서 알려주는 방법대로 복사해 붙여주시면 됩니다.
수동 작업
미디어위키는 문서 URL이 다음과 같은 형식을 가지게 됩니다.
http://example.org/w/index.php/Page_title
- 공용게이트웨이 인터페이스(CGI)를 지원하지 않는 경우)
http://example.org/w/index.php?title=Page_title
- 공용게이트웨이(CGI)를 지원하는 경우)
참고로 버추얼박스 설치부터 제 연재를 그대로 따라오신 분들은 첫 번째 주소 형식일 것입니다.
CGI에 대해 궁금하신 분들은 아래 링크를 참고하시기 바랍니다.
어쨌든 위의 기본적인 미디어위키 문서 주소를 한국어 위키백과의 Short URL 형식으로 구성해보도록 하겠습니다.
미디어위키 설치 환경
OS : Ubuntu 18.04.2
Apache2 : Apache/2.4.29 (Ubuntu)
PHP7 : PHP 7.2.15-0ubuntu0.18.04.1
MariaDB : mysql Ver 15.1 Distrib 10.3.12-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2
phpMyAdmin : phpMyAdmin 4.6.6deb5
Apache2 설치 디렉토리 : /etc/apache2
미디어위키 설치 디렉토리 : /var/www/html/w
서버 root 권한이 있는 경우 1
apache2.conf 편집
/etc/apache2
## 미디어위키 Short_URL ##
# http://www.mediawiki.org/wiki/Manual:Short_URL/Apache
# RedirectMatch
# RedirectMatch /mediawiki/index.php/(.*)$ http://localhost/wiki/$1
# RedirectMatch /mediawiki/index.php?(.*)$ http://localhost/w/index.php?$1
# RedirectMatch /mediawiki/images/(.*)$ http://localhost/w/images/$1
# Alias
Alias /wiki /var/www/html/w/index.php
Alias /index.php /var/www/html/w/index.php
Alias /w/skins/ /var/www/html/w/skins/
Alias /w/images/ /var/www/html/w/images/
# Rewrite 엔진을 활성화
RewriteEngine On
# 위키 페이지로 접근하는 주소를 짧게 만듬
RewriteRule ^/?wiki(/.*)?$ %{DOCUMENT_ROOT}/w/index.php [L]
# '/'를 메인 페이지로 리다이렉션
RewriteRule ^/*$ %{DOCUMENT_ROOT}/w/index.php [L]
apache2.conf 파일 하단에 위 코드를 그대로 복사해 붙이고 저장해주시면 됩니다.
RedirectMatch는 기존 주소를 새 주소로 포워딩해주는 역할을 합니다. 따라서 새 사이트를 구축하는 경우에는 필요하지 않습니다.
위의 예시 코드상,
기존 주소는 http://도메인/mediawiki/index.php/표제어
새 주소는 http://도메인/wiki/표제어입니다.
검색엔진에 등록된 기존 주소가 끊어지지 않도록 하려면 RedirectMatch 3줄의 주석을 해제해주시면 됩니다.
# RedirectMatch /mediawiki/index.php/(.*)$ http://localhost/wiki/$
# : 주석 처리
/mediawiki/index.php/(.*)$ : 기존 미디어위키 설치 주소가 웹 서버 root 디렉토리/mediawiki/
http://localhost/wiki/$ : localhost를 자신의 도메인으로, wiki를 원하는 임의의 문자로 변경
mod_rewrite 모듈 활성화 및 apache2 재시작
study@study-VirtualBox:~$ sudo a2enmod rewrite Module rewrite already enabled study@study-VirtualBox:~$ sudo service apache2 restart study@study-VirtualBox:~$Short URL을 쓰기 위해서는 mod_rewrite 모듈을 반드시 활성화해주어야 합니다.
LocalSettings.php 편집
## 미디어위키 Short_URL ##
# https://www.mediawiki.org/wiki/Manual:Short_URL
# $wgScriptPath = "/w"; // 이 변숫값은 30번째 줄에 이미 정의되어 있어 주석처리 합니다.
$wgScript = "$wgScriptPath/index.php";
$wgArticlePath = "/wiki/$1";
$wgUsePathInfo = true;
LocalSettings.php 파일 하단에 위 코드를 복사해 붙여 주시면 됩니다.
서버 root 권한이 있는 경우 2
.htaccess
웹서버 root 디렉토리 아래(/var/www/html)
<IfModule rewrite_module>
RewriteEngine On
RewriteBase /
# RewriteRule ^$ w/ [R,L]
# don't touch some reserved urls
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule . - [L]
# wiki article
RewriteRule ^wiki/(.+)$ w/index.php/$1 [QSA,L]
</IfModule>
웹브라우저 주소창에 도메인 주소만 입력하면 바로 위키 사이트로 자동 접속되게끔 하려면 다섯 번 째 줄의 주석처리를 해제해주시면 됩니다.
LocalSettings.php 편집
## 미디어위키 Short_URL ##
# https://www.mediawiki.org/wiki/Manual:Short_URL
# $wgScriptPath = "/w"; // 이 변숫값은 30번째 줄에 이미 정의되어 있어 주석처리 합니다.
$wgScript = "$wgScriptPath/index.php";
$wgArticlePath = "/wiki/$1";
$wgUsePathInfo = true;
$wgScriptExtension = ".php";
서버 root 권한이 있는 경우 3 - 추천
wiki.conf 생성
/etc/apache2/sites-available
<Directory /var/www/html/w/>
Options +FollowSymlinks
AllowOverride All
<IfModule mod_dav.c>
Dav off
</IfModule>
SetEnv HOME /var/www/html/w
SetEnv HTTP_HOME /var/www/html/w
</Directory>
## 미디어위키 Short_URL ##
# http://www.mediawiki.org/wiki/Manual:Short_URL/Apache
# RedirectMatch
# RedirectMatch /mediawiki/index.php/(.*)$ http://localhost/wiki/$1
# RedirectMatch /mediawiki/index.php?(.*)$ http://localhost/w/index.php?$1
# RedirectMatch /mediawiki/images/(.*)$ http://localhost/w/images/$1
# Alias
Alias /wiki /var/www/html/w/index.php
Alias /index.php /var/www/html/w/index.php
Alias /w/skins/ /var/www/html/w/skins/
Alias /w/images/ /var/www/html/w/images/
# Rewrite 엔진을 활성화
RewriteEngine On
# 위키 페이지로 접근하는 주소를 짧게 만듬
RewriteRule ^/?wiki(/.*)?$ %{DOCUMENT_ROOT}/w/index.php [L]
# '/'를 메인 페이지로 리다이렉션
RewriteRule ^/*$ %{DOCUMENT_ROOT}/w/index.php [L]
위 코드 그대로 파일을 생성해 주시면 됩니다.
가상 호스트 기능을 사용하고 있다면, Rewrite 규칙들을 가상 호스트 선언 안쪽에 위치시켜야 합니다.
a2ensite 명령어 실행 및 apache2 재로드
study@study-VirtualBox:/etc/apache2/sites-available$ sudo a2ensite wiki.conf Enabling site wiki. To activate the new configuration, you need to run: systemctl reload apache2 study@study-VirtualBox:/etc/apache2/sites-available$ sudo systemctl reload apache2
만약 a2ensite 명령을 비활성화 하려면 a2ensite 문구를 a2dissite로 바꿔 실행해주시면 됩니다.
LocalSettings.php 편집
## 미디어위키 Short_URL ##
# https://www.mediawiki.org/wiki/Manual:Short_URL
# $wgScriptPath = "/w"; // 이 변숫값은 30번째 줄에 이미 정의되어 있어 주석처리 합니다.
$wgScript = "$wgScriptPath/index.php";
$wgArticlePath = "/wiki/$1";
$wgUsePathInfo = true;
서버 root 권한이 없는 경우
http://localhost/w/index.php/대문 주소를
아래는 원 주소에서 index.php 문구만 삭제하는 방법입니다.
.htaccess 파일 작성
/var/www/html/w
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /w/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /w/index.php [L]
</IfModule>
LocalSettings.php 편집
## 미디어위키 Short_URL ##
# https://www.mediawiki.org/wiki/Manual:Short_URL
# $wgScriptPath = "/w"; // 이 변숫값은 30번째 줄에 이미 정의되어 있어 주석처리 합니다.
$wgScript = "$wgScriptPath/index.php";
$wgArticlePath = "/w/$1";
$wgUsePathInfo = true;
$wgScriptExtension = ".php";
LocalSettings.php 파일 하단에 위 코드를 복사해 붙여 주시면 됩니다.
제 글이 여러분께 조금이나마 도움이 되기를 바랍니다.
'미디어위키 > 미디어위키 설치 및 관리' 카테고리의 다른 글
미디어위키(Mediawiki) 파일 업로드 04(이미지 업로드 설정) (0) | 2019.04.13 |
---|---|
미디어위키(Mediawiki) 파일 업로드 03(파일 업로드 권한 설정) (2) | 2019.04.10 |
미디어위키(Mediawiki) 파일 업로드 02(인스턴트 공용 기능 활성화) (0) | 2019.04.09 |
미디어위키(Mediawiki) 파일 업로드 01(핵심 설정) (0) | 2019.04.05 |
미디어위키(Mediawiki) 모바일 접속 환경 구축 - MobileFrontend, GeoData, Minerva Neue (0) | 2019.03.30 |
미디어위키(Mediawiki) 저작권 및 라이선스 설정 - 크리에이티브 커먼즈 라이선스(CCL - Creative Commons license), GNU 자유 문서 사용 허가서 (0) | 2019.03.27 |
미디어위키(Mediawiki) 새로운 사용자 그룹 생성 및 권한 부여 (0) | 2019.03.26 |
미디어위키(Mediawiki) 사용자 권한(User rights) 설정 (2) | 2019.03.22 |