Manual:Short URL/Apache/ja

ここに記している手順は、Apacheで短いURLを設定するのに役立ちます. LiteSpeed WebサーバーはApacheと互換性があり、比較的同じように設定できます. 短いURLとは何なのかや、他のサーバーの設定手順については、を参照してください. どこかのウェブホスティングサービスを使ってていてウェブサーバの種類がわからないときは、恐らくApacheを使用していると考えて間違いないでしょう.

準備
設定を始める前に、仮想的な「短いURL」のパスを決めておく必要があります.

このマニュアルでは、以下の推奨内容になっていることを想定しています. あなたの決めたパスがこれと異なっていた場合は、忘れず値を読み替えるようにしてください.


 * MediaWikiが置かれたディレクトリ:
 * 希望する短いURLの形式:

以後の作業は、自動化されたウィザードが行う処理に含まれています (MediaWiki 1.17以上):


 * shorturls.redwerks.org

すばやく設定作業をしたい場合や案内の内容がよく分からない場合は、まずはこのウィザードツールを試してみてください. なお、ファイアウォールがある環境や非公開のウィキの場合、このツールは使えないので注意してください. 非公開ウィキでも、 を に設定して一時的にウィキを公開すればツールを試すことができます. 作業を終えたら、忘れずに を に戻しておいてください.

このツールを使わないのでなければ、以下の指示にしたがって作業を進めてください.

編集すべきファイルを知る
Apacheで短いURLを設定するには、Apacheの設定ファイルを編集することをお勧めします. これには、サーバー設定へのアクセス権が必要です. 共有ホストを使っている場合、その権限はないことが多いでしょう. そのときは代わりに ファイルを使ってください. ファイルを使うやり方は効率が悪く、複数のドメインを使った複雑な設定をするときに必要となる設定をすべてを行うことはできません. しかし、ほとんどの短いURLではこれで十分です. LiteSpeedユーザーは を使うのがいいでしょう.

以下に記す2つの節のうちどちらか一方の手順にしたがって設定を進めてください. どちらを使うべきかは、あなたがrootアクセス権を持っているのか、そうではなく代わりに を使う必要があるのかに依存します.

Apache設定ファイルの場所を知る（rootアクセス権がある場合）
基幹設定を編集するためのファイルはさまざまな場所にある可能性があり、そのどれか一つが本当に編集すべきファイルになるでしょう.

ほとんどのLinuxディストリビューションでは、 と のフォルダにApacheの設定ファイルがあります. 編集すべき設定ファイルは、 の中にあってあなたのウィキに関する設定が書かれている設定ファイルです. まだウィキに関する設定は行っておらず、初期状態の をウィキのディレクトリとして使っていた場合、 を編集して設定することができます.

で設定上書きを有効化することを忘れないでください. 初期状態のUbuntu 12.04とUbuntu 12.10では無効になっています.

ディストリビューションにこれらのディレクトリがない場合は、Apache設定ファイルを直接編集する必要があります. このファイルは にあるはずです. 以前は という別の名前であったことに注意してください. が存在し、 が存在しなかったときは、 が編集するべきファイルになります.

Apacheの設定ファイルがこれらいずれの場所にもないときは、Apacheのインストールに使用したシステムのマニュアルを参照し、そのファイルの場所を探してください.

Apacheの設定ファイルにアクセスできない共有ホストを使っている場合、代わりに.htaccessファイルを使用する必要があるでしょう.

Apache設定ファイルには、あなたのウィキに関する設定が書かれたVirtualHostブロックがあるでしょう. それがあるなら、ここが書き換えルールを設定する場所になります. VirtualHostを使用している場合、RewriteRule設定をグローバル設定として書かないでください. RewriteRule設定はVirtualHostに継承されないからです.

After you've setup the config as below inside Apache you're going to need to restart Apache to make it apply the new config.


 * PleskやcPanelを使っている場合、サーバーを再起動する方法が必要です.
 * コマンドラインを使う場合、通常は 、 、 のようなコマンドを、最新のFedoraであれば 実行することになるでしょう. これらのコマンドはrootユーザとして実行する必要があるため、通常は を前につけて実行することになります.

Where to put .htaccess
If you're using a  file you'll need to edit or create the file. Find the path that contains both your script path and your virtual path. Usually this means the top directory of your site, but let's look at a few examples:

Note that if you want to make a redirect from the main domain to your wiki's Main Page (e.g. http://example.org/ http://example.org/wiki/Main_Page ). Then you always have to set up the .htaccess file in the top level, even if the other directories are nested deeper.

Setting up the rewrite rules
It's easier to understand the rest of this section after a glimpse at the Apache syntax, but this synopsis is not a substitute for the full Apache documentation:

The  directive defines a condition that must be true before a RewriteRule that follows it may be applied. One or more RewriteCond directives may precede a RewriteRule directive, and all the RewriteCond directives that precede a RewriteRule must be true before that rule may be applied to a URI. In the examples that follow,  takes the form of a reference to server variables, e.g.  . Although many   exist, the examples that follow use   (true when TestString is a regular file) and   (true when TestString is a directory), and they are preceded by a negation symbol,.

The  directive may be invoked in both the   file and in any   file, but when the rewrite rule appears in .htaccess files, the implicit per-directory context affects the rule's   because rules are relative to the current directory. In  files, Patterns are not relative to the complete, original URI. For  files, Patterns should never start with a forward slash, , because the URI sub-string will never begin with a. The examples that follow use the  flag whose meaning is Stop the rewriting process immediately, and don't apply any more rules.

The first rule you'll need inside of your config is one to enable the rewrite engine:

Now we need a rule to make your article path a virtual path pointing to index.php. Be sure to replace  and   with the paths you choose in the beginning (if different).

If you are using a root url instead of a normal short url you will need to use the following instead (to ensure that existing files and directories are not seen as article, e.g. " " " " etc.):

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.