Manual:Short URL/Apache/ko

Apache에는 아파치 웹서버에서 짧은 URL을 셋팅하기 위해 사전에 수행해야 할것들 입니다. LiteSpeed 웹서버는 Apache와 호환되며 같은 방식으로 설정될 수 있습니다. 다른 웹서버들을 위한 설정 방법을 얻고 싶거나 짧은 URL이 무엇인지에 대해 알려면 를 참고하세요. 어떤 웹호스팅 서비스를 사용중이나 어떤 웹 서버 소프트웨어를 사용하는지 모른다면, 보통 웹호스팅 서비스들은 Apache를 활용하고 있을 가능성이 높습니다.

계획하기
시작하기 앞서, 앞으로 짧게 줄여서 사용하게될 가상 URL 경로를 결정해야 합니다.

이 메뉴얼에서는 우리가 권장하거나 따르고 있는 방법들을 소개합니다. 자신만의 경로를 사용하려 한다면 일부 다른 형태가 될 수 있음을 유의해주세요.


 * 미디어 위키가 설치된 디렉토리:
 * 가상 URL의 형태:

아래 웹사이트는 이 과정들을 일부 자동으로 수행해줍니다. (미디어위키 1.17 혹은 이후 버젼에서만 가능)


 * shorturls.redwerks.org

자신만의 위키를 빠르게 설정하거나 헷갈리지 않도록 가이드를 찾고 있다면, 위 웹사이트를 먼저 방문해 보세요. 그러나, 기억해야 할것은 아마 방화벽이 설치되어 있거나 개인 위키에서는 제대로 동작하지 않을 수 도 있습니다. 후자인 경우, 자신만의 위키를 를  로 변경하여 계속 시도 해보세요. (설정이 제대로 된 이후에 를 다시  로 변경하는 것을 잊지 마세요)

그게 아니라, 수동으로 설정하려면 아래 과정을 수행하세요.

잘 동작하는 파일 찾기
짧은 URL을 Apache에 설정하기 위한 방법들 중 권장하는 방법은 Apache 설정 파일들을 수정하는 것이지만, 이것은 서버 설정을 변경하기 위한 권한을 필요로 합니다. (역자 주: root 권한) 만약 공유된 호스트(역자 주: 웹호스팅 같은)에서 작업하려고 한다면, 아마 그걸 수정할 수는 없을 것이고, 그 대안으로  파일을 사용해야 할겁니다. 파일을 사용하는 것은 효과적인 방법이 될 수는 없고 다수의 도메인을 함께 사용하려고 할 때 그렇게 많은 권한을 주지는 않습니다. 그럼에도 불구하고, 그것들만으로도 짧은 URL 설정을 하기엔 충분합니다. LiteSpeed 사용자들은  방법을 사용하세요.

설정을 바꿀 수 있는 root 권한을 가지고 있는지 아닌지에 따라 를 사용하거나 하지 않거나를 결정하여 아래 두 섹션중 하나를 따라하시면 됩니다.

Apache 설정 파일 찾기 (root 권한 보유)
관리자 설정을 변경할 수 있는 정확한 설정 파일은 많은 장소중 한곳에 있을겁니다.

대부분의 리눅스 배포본은 Apache를 설치할 때  과   폴더를 함께 설치합니다. 정확한 설정파일은 에 들어있는 것들 중 위키를 설치할 때 설정했던 설정 파일입니다. 만약 아무것도 새로 만들지 않았고 위키를 설치할 때 기본 웹사이트 디렉터리인 를 사용하였다면  를 수정하면 됩니다.

Ubuntu 12.04와 12.10에서는 는 기본적으로 비활성화 되어 있는데 활성화 시켜야 합니다.

자신이 활용중인 리눅스 배포본에 이러한 디렉터리가 없다면 Apache 설정파일을 직접 수정해야 합니다. 이 파일의 경로는 입니다. 그게 으로 명명되어 있다면, 혹은  는 찾았는데,  가 없다면 수정해야될 파일은  입니다.

Apache 설정이 어디에도 없다면 Apache를 설치한 시스템에서 설명서를 보고 Apache 설정파일이 어디에 있는지 찾아야 합니다.

Apache 설정 파일에 접근할 수 있는 권한이 없는 공유된 호스트를 사용하고 있다면, .htaccess 파일을 사용해야 할것입니다.

Apache 설정파일에 자신의 위키를 포함하는 VirtualHost 블록이 들어 있다면 거기에 rewrite 규칙을 작성할 장소가 있습니다. VirtualHost를 사용하고 있을 때 RewriteRule 설정은 상속되지 않으므로 이러한 옵션들을 전역 설정에 넣지 말아야 합니다.

Apache설정을 수정한 이후 아래 과정을 따라 Apache에 새 설정을 적용하도록 재시작 시켜줘야 합니다.


 * Plesk나 cPanel을 사용중이라면 그걸로 서버를 재시작 시키면 됩니다.
 * 커맨드 라인에서 그 커맨드는 보통,  ,  주 하나이거나 최신 Fedora 배포판에서는  입니다. 이 명령들은 root 권한으로 수행되거나  를 맨앞에 달아주시면 됩니다.

.htaccess를 놓을 곳은...?
파일을 사용하려면 스크립트와 가상 경로를 모두 포함하는 경로에 수정하거나 생성해야 합니다. 보통 사이트의 최상위 디렉토리입니다. 예:

주 도메인에서 wiki의 메인 페이지로 리디렉션하려는 경우 (예 : $ code) 항상 최상위 레벨에서 .htaccess 파일을 설정해야합니다. (다른 디렉토리가 중첩 된 경우에도)

Rewrite 규칙 설정하기
Apache 문법을 간단히 살펴보면 이 섹션이 이해하기 어렵지 않지만, 이 내용은 Apache 설명서 전체를 대변하지는 않습니다.

지시어는 그 뒤에 오는 RewriteRule이 적용되기 전에 true 여야하는 조건을 정의합니다. 하나 이상의 RewriteCond 지시어가 RewriteRule 지시문 앞에 올 수 있으며 RewriteRule 앞에 오는 모든 RewriteCond 지시문은 해당 규칙이 URI에 적용되기 전에 true 여야합니다. 아래 예제에서 은 서버 변수에 대한 참조 형식을 취합니다. . 많은 가 있지만,   (TestString이 일반 파일 일 때 true)와   (TestString이 디렉토리 일 때 true)를 사용하며 앞에  기호가 붙습니다.

지시문은  파일과   파일에서 모두 호출 할 수 있지만, 다시 쓰기 규칙이 .htaccess 파일에 나타나면 규칙에 따라 암시적인 디렉토리 별 컨텍스트가 규칙의  에 영향을 주고, 현재 디렉토리를 기준으로 합니다. 파일에서 패턴들은 완전한 URI에 상대적이지 않고, 원본 URI를 기준으로 합니다. 파일의 경우 패턴은 URI 하위 문자열이 로 시작하지 않기 때문에 전위 슬래쉬나  로 시작하지 않아야 합니다. 아래 예제는 $L 플래그를 사용하며 즉시 재 작성 프로세스를 중지하고 더 이상 규칙을 적용하지 마십시오라는 의미입니다.

Rewrite 엔진을 활성화 시키기 위해 설정파일에 작성할 첫번째 규칙은 아래와 같습니다.

이제, 우리는 어떤 글에 접근하는 경로를 가상 경로로 만들기 위해서 가상 경로가 index.php를 가르키도록 만들겁니다. 와 를 앞의 계획하기섹션에서 계획한 대로 바꿔 쓰십시오. (다르게 계획했다면)

짧은 URL로서 루트 URL을 사용하려는 경우 위에 있는것 보단, 아래 규칙 샘플을 사용하셔야 합니다. (파일이나 디렉터리가 이미 존재하는경우 글로서 취급되지 않도록, 예를 들자면 " "나 " " 같은 것들...)

Sometimes, the above example doesn't work. The following (you can't set this in a, you need root access for this!) might work instead:

Optionally, you can include a rule to show the Main Page on the path itself, to simplify navigation when people visit urls without a page title specified:

The end result should look something like this:

or, if you used the way with the "Alias" statement:

LocalSettings.php
We need to make the following configurations in :

If you get an "Internal error" page saying "Redirect loop detected!" after you finish configuration you may be using something other than mod_php. If so you need to explicitly turn on short urls using the following line in your LocalSettings.php:

If there is still an "internal error" check the log files of your server. Maybe you have to turn on  module.