Manual:Short URL/Apache/ja

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

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

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


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



サーバーの設定


編集すべきファイルを知る
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に継承されないからです.

上記のようにApacheの設定を行ったら、Apacheを再起動して新たな設定を反映させる必要があります.


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



どこに.htaccessを置くのか
ファイルを使う場合、このファイルを編集します. 存在しなければ新たに作成してください. スクリプトのパスとサイト上の仮想パスの両方を知っておく必要があります. 通常、ウィキがあるサイトのトップディレクトリを指しますが、以下に示すいくつかの例を見てみることにしましょう.

メインドメインからウィキのメインページ（例： http://example.org/ http://example.org/wiki/Main_Page ）へのリダイレクトを設定する場合、常に最上位のディレクトリに .htaccess ファイルを置く必要があることに注意してください. 例え他のディレクトリが深い階層にあったとしてもです.



書き換えルールの設定
この節の残りの部分は、Apacheの設定書式を一読してからの方が理解しやすいでしょう. ここに記す概略は完全なApacheマニュアルの代わりにはなりません.

ディレクティブは RewriteRule を適用する対象となる条件を規定します. RewriteRule の前に一つ以上の RewriteCond ディレクティブを書くことができ、URL に書き換えルールを適用するには RewriteRule の前にあるすべての RewriteCond の判定結果が真となる必要があります. 以下の例では、 に   などのサーバー変数を参照する書式を使って条件を記しています. 複数の  がある場合、上記の例では   (条件文が通常ファイルであった場合に真) と   (条件文がディレクトリであった場合に真) を使用し、これらの前に否定文字   を使用しています.

ディレクティブは ファイルからもいずれの ファイルからも呼び出すことができます. しかし、書き換えルールを.htaccess ファイル内に記した場合、ルールのパターンは暗黙のうちにディレクトリごとの設定の影響を受けます. なぜならルールは .htaccess があるディレクトリからの相対的なルールとなるからです. ファイル内に記した場合は相対的なものとはならず、元のURL全体に対するルールとなります. ファイルに記す場合、スラッシュ で始まるパターンを書いてはいけません. なぜならURLの部分文字列は で始まることはないからです. 以下の例では、書き換え処理を即座に停止し、これ以上ルールは適用しないことを意味する フラグを使っています.

設定ファイルの中で最初に記す必要のあるルールは、書き換えエンジンを有効化する指示です.

ここで次に必要となるのが、記事のパスをindex.phpを指す仮想パスに変えるルールです. と はあなたが考えているものに置き換えてください（もし違っていれば）.

短いURLとして、通常のURLではなくサイトのトップURLを使う場合、以下の設定を使う必要があるでしょう（ や などの既存ファイルやディレクトリが記事として見えてしまわないようにしています）.

上記の例は動作しないことがあります. そんなときは代わりに以下のように設定すれば動作するでしょう（これは に設定することはできません. この設定にはrootユーザでのアクセスが必要です!）

パス自体にメインページを表示するルールを組み込んで、ページタイトルが指定されていないURLでアクセスされたときの案内を簡単にすることもできます.

最終的な結果は以下のようになるでしょう.

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

LocalSettings.php
以下の設定をに行う必要があります.

設定完了後、「リダイレクトのループが検出されました!」と記された内部エラーページが表示されたら、 以外のものを使っているのかも知れません. その場合は以下の行を「LocalSettings.php」ファイルに記して短いURLを明示的に有効化する必要があります.

それでもまだ、サーバのログファイルに「内部エラー」が出ている場合、おそらく モジュールを有効化する必要があるでしょう.

Simple instructions
The following is a summary of what to do if you are not doing anything different than what MediaWiki recommends. If you want to do something else, you need to read all of the details above.


 * https://example.com/wiki/Main_Page ( url location )
 * /home/me/public_html/mediawiki/w/index.html ( index.html location )
 * /home/me/public_html/mediawiki/.htaccess ( .htaccess location )

Notice that the .htaccess file is NOT located in the "w" directory, but it is located in the directory above it.

LocalSettings.php source code
