작은숲:위키노트/미디어위키 짧은 주소 설정
미디어위키에서 짧은 주소를 쓰기 위해서는 작은숲:위키노트/아파치 mod_rewrite 모듈 같은 주소를 재지정해줄 수 있는 웹 서버 기능이 필요하다.
아파치 웹 서버 설정
아파치 mod_rewrite 모듈을 쓰는 경우 아래 내용을 루트 디렉토리의 .htaccess 파일이나 가상 호스트 설정에 추가한다.
<IfModule rewrite_module>
RewriteEngine On
RewriteBase /
RewriteRule ^$ wiki/ [R,L]
# don't touch some reserved urls
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule . - [L]
# wiki article
RewriteRule ^w/(.+)$ wiki/index.php/$1 [QSA,L]
</IfModule>
미디어위키가 /var/www/wiki 디렉토리에 설치되어 있고 도메인의 루트 디렉토리는 /var/www 디렉토리라고 했을 때, yourdomain.com으로 접속하면 /var/www으로 들어오게 된다. 이럴 때 RewriteRule ^$ wiki/ [R,L]과 같이 설정하면 곧바로 yourdomain.com/wiki/로 보내준다. 이런 기능이 필요 없다면 RewriteRule ^$ wiki/ [R,L]은 지우도록 한다.
RewriteCond %{REQUEST_FILENAME} -f은 "브라우저가 요청한 것이 서버에 실제하는 파일"인지 검사한다. 그래서 파일이면 바로 아래에 나온 룰에 따라 요청한 파일을 그대로 보낸다. 실제 주소로 동작하는 기능(예를 들어 load.php나 api.php 등)이나 CSS, 자바스크립트와 같은 리소스 파일들이 여기에 해당한다.
사용자가 작은숲:위키노트/브라우저 주소창에 yourdomain.com/w/미디어위키라고 입력하면 RewriteRule ^w/(.+)$ wiki/index.php/$1 [QSA,L] 룰에 따라 이 요청은 yourdomain.com/wiki/index.php/미디어위키라고 풀어서 처리하게 된다. 즉 /wiki/index.php/미디어위키라고 표현되던 URL을 /w/미디어위키와 같이 짧게 표현할 수 있다.
Nginx 웹 서버 설정
미디어위키 설정
웹 서버를 설정했다면 이제 미디어위키의 LocalSettings.php를 수정해서 위에 설정한 짧은 주소를 위키 내에서도 쓰도록 한다.
## The URL base path to the directory containing the wiki;
## defaults for all runtime URL paths are based off of this.
## For more information on customizing the URLs
## (like /w/index.php/Page_title to /wiki/Page_title) please see:
## https://www.mediawiki.org/wiki/Manual:Short_URL
$wgScriptPath = "/wiki";
$wgScript = "$wgScriptPath/index.php";
$wgArticlePath = "/w/$1";
$wgScriptExtension = ".php";
$wgArticlePath 변수를 웹 서버 설정할 때 지정했던 주소로 설정한다. /w/$1에서 $1은 문서의 제목이 자동으로 들어가는 곳이다.
참고
- (영어) mw:Manual:Short URL
| 설치와 설정 | |
|---|---|
| 기능과 활용 | |
| 관리와 개발 | |