Manual:短縮URL

From MediaWiki.org
Jump to navigation Jump to search
This page is a translated version of the page Manual:Short URL and the translation is 88% complete.
Other languages:
Deutsch • ‎English • ‎español • ‎français • ‎italiano • ‎polski • ‎português • ‎português do Brasil • ‎русский • ‎中文 • ‎日本語 • ‎한국어

Short URLs(別名: URL Rewrites)は、ページの URL から php ファイルの拡張子を隠します。 後々の問題点を減らすには、ここで少し時間を使い、あなたのウェブサイトの安定した URL 構造を獲得してから処理を始めてください。

導入

目標

MediaWikiの一般的なインストール・パスは、おおよそ以下のようになります。

/var/www/localhost/htdocs/mediawiki/w (root ユーザーとしてインストールした場合)
/home/johndoe/public_html/mediawiki/w (共有ホスティングのプロパイダーにインストールした場合)

MediaWikiの既定のウェブページアドレスは以下の例のようになります。

http://example.org/w/index.php/Page_title (最近のバージョンの MediaWikiでCGI サポートがない場合)
http://example.org/w/index.php?title=Page_title (最近のバージョンの MediaWikiで CGI サポートがある場合)

下記の方法を使用して、ウェブページのアドレスを次のように短くすることができます。

http://example.org/wiki/Page_title これはごくありふれた設定であり、サーバー側の修正が必要なのでデフォルトではありませんが、ウィキペディアと同じです。
http://example.org/view/Page_title
http://wiki.example.org/view/Page_title
http://example.org/Page_title
http://wiki.example.org/Page_title

長所と短所

  • 長所: 短いURLは技術的詳細の一部を利用者から隠します。それはサイトの所有者にとっては望ましい事でしょう。とりわけ基本ソフトウェアを変更する時に、システムを安定に保つことができます。 (MediaWikiのデフォルトURL構造を、CGIの有無で対比させた違いは上記を参照) 短いURLは利用者にとっても読み・書き・操作がより簡単になります。 加えて、?を含んでいる既定のURLは、サーチエンジンがページランクを計算する時に好ましくない物として扱われてしまう可能性があるため、短いURLは検索エンジン最適化においてより有利です。
  • 短所: 設定が必要。ご利用のホスティング環境によっては、再作成が困難な場合があります。 しかし、広く使用されているWebサーバーはどれでも短いURLを使うように設定可能で、有料ウェブ・ホスティング・サービスの大半は、この機能をサポートしています。この機能をあなたに提供していないホストに、お金を払う価値はありません。

ガイド

Webサーバ別の短縮URL設定に対して、公式ガイドとして以下を提供します。 この中から、お使いのWebサーバーを選択します。 使用しているサーバーソフトが分からない場合、Apacheの可能性が高いでしょう。

他サーバー用ガイド

これらのガイドは古く、ほとんど完全に悪いアドバイスです。 上記の公式ガイドが異なるウェブサーバー用に作成されているため、これらは最終的に1つずつ削除されます。

誰でも解説ページを作り、それを下のリストに載せることができます。 新しい解説ページを作るときは、下のページを参考にしながら、適切なページ名を付けるよう心がけて下さい。 それぞれの解説に独自のページを作成すると、複雑で不用な作業を回避することができます。 解説ページは、簡潔で読みやすくするように心がけて下さい。

どの短いURLの方法が本当に適切か、他の人の判断を助けるには、個別の方法を試してからページを編集し、そのガイドの「有効」または「無効」の件数を加算してください。合わせて、一覧の番号のリンクをクリックし、何がうまくいかなかったか簡単に(または希望するなら詳細に)説明してください。

URL で - example.com/wiki/Page_title に類するもの

「編集」「履歴を閲覧」などの行動も、$wgActionPathsを設定しない限り、index.phpが付随します。

root アクセス

これらの方法ではサーバ設定にアクセス権があることを前提にしています。 共有ホストをご利用でしたら、権限がないかもしれません。 この場合、「ルートアクセスなし」の方法を使う必要があります。 MediaWiki簡易URL構築ツールに直接飛んで、画面の指示に従います。 Select "I don't have root access" after entering your wiki's URL.

(Apache向けのガイドはGuides節にリンクがあります)。

URL で - example.com/Page_title に類するもの

警告 警告: This is probably only appropriate if your domain is only being used for MediaWiki, but even then it is typically not recommended, as this setup can leave some titles unusable. See Manual:Wiki in site root directory and Cool URIs don't change.

example.com/Page_title URL の作成方法:

URL で - wiki.example.com/Page_title に類するもの

警告 警告: This is probably only appropriate if your domain is only being used for MediaWiki, but even then it is typically not recommended, as this setup can leave some titles unusable. See Manual:Wiki in site root directory and Cool URIs don't change.

wiki.example.com/Page_title URLの作り方

トラブルシューティング

アンパサンド問題

アンパサンド(&)問題とは、ページ名に含まれる(&,?,#,+,/などの)記号が正しくエンコード化されたにも関わらず、mod_rewriteからスクリプトに正しく渡らないため、リンクとして機能しなくなる挙動を見せます。 特殊文字の箇所で題名が切り落とされるため、404エラー(ページが見つかりません)に明らかに現われます。 例として「John & Maria's page」へのリンクを押すと、MediaWikiが「John」という名のページを探してしまうため、404エラーを返してきます。

長い形式の名前に含まれるアンパサンド(&)はクエリ文字列の区切り文字として扱われてしまい、PHP 実行環境に渡されずに終わってしまいます。 これは古くて問題のある mod_rewrite のバグによるものです。[1]

解決方法:

この問題の原因は/index.php?title$1のように、書き換えルールに含まれるまったく不用で害をもたらすだけの?title=$1部分にあります。 MediaWikiではREQUEST_URIから直接、パスを構文解析し、すべてを/index.phpに書き換えます。

外装がない

Ubuntu 8.10ならびにMediaWiki 1.11.2(に加えて後続バージョン)ではMediaWiki認可の指示に従うと、スキンが読み込まれないことがあります。 修正のためには、LocalSettings.php内の$wgScriptPathの値を使い、/var/lib/mediawikiを指すシンボリックリンクを/var/wwwに作成します。 例として$wgScriptPathを「/w」に設定するならば、「sudo In -s /var/lib/mediawiki /var/www/w」というコマンドを実行しなくてはなりません。

あるいは、$wgLoadScriptを元のファイルに設定してみることにします。 もし元のurlが/wikiで省略urlが「/w」だとすると、/wiki/load.phpに設定します。

キャッシュの破棄

もしLocalSettings.phpにある$wgArticlePathを変更しても、mysite.com/wiki/Main_Pageに反映されないのであれば、MediaWikiがリンクのキャッシュに以前の設定を当てていることが原因かもしれません。

mysite.com/wiki/Main_Page?action=purgeを開き、MediaWikiにリンクのキャッシュを更新させましょう。

また別途、実行すべき内容とは:

  1. MySQLクエリ「TRUNCATE objectcache;」を実行する。または
  2. $wgCacheEpochの更新を確認($wgInvalidateCacheOnLocalSettingsChangeが有効であればLocalSettings.phpを編集してキャッシュを破棄すること)

ドメインの訪問者をウィキにリダイレクトさせる事について

短いURLの設定に関する公式ガイドには、ご利用のサイトのルートからウィキを指し示す方法について提言があります。

例えばApacheガイドでは、ご利用のサイトのルートからウィキを指し示すために、以下を使うように推奨しています。

RewriteRule ^/*$ %{DOCUMENT_ROOT}/w/index.php [L]

注意:直接、ご利用のウィキのパスあるいはメインページにHTTPリダイレクトすることを、私たちはお勧めしません。 メインページに直接リダイレクトすると、ご利用のウィキページの可変的な設定をサーバの設定にハードコーディングして固定することになるからです。 そしてウィキのパスへのリダイレクトはリダイレクトを2つ生むという結果をもたらします。 単純にルートのパスをMediaWiki に書き換えましょう。それがメインページ自体への301リダイレクトを管理することになります。

VirtualHostsを利用する場合は、書き換え規則をバーチャルなホスト宣言に置きましょう!

/wikiから/wにウィキを移動

初心者がよくやってしまう間違いはMediaWiki自体(短いURLではなくソースコードの話)を/wではなく/wikiにインストールしてしまうことです。 インストールが終わった後で、初心者の皆さんは短いURLを設定しようとして間違いに気づきます(仮想パスが実際のパスと衝突し実行ができません)。

一般向けのウィキの移動のマニュアルは、皆さんに必要なのが単にインストール・ディレクトリの変更だけであれば、複雑すぎます(サーバ、データベースやホスト名の変更が不用なので)。

やることリストをあげておきます。

  • LocalSettings.phpとあなたが作成した設定ファイル(.htaccessなど)をバックアップしてください。
  • サーバー上のMediaWikiのインストール・ディレクトリの名前を/wikiから/wに変更してください。
  • LocalSettings.php内の$wgScriptPath"/w"に設定し、$wgArticlePathの設定を削除(またはコメント・アウト)してください(後で短いURLを設定する時に、この変数は再び変更します)。
  • この時点で、あなたのウィキはexample.org/wで普通に動作中です。
  • ここで通常のガイドを通読して、短いURLを設定する方法を学びます。
  • あなたのウィキがどこも壊れていないか、少しテストをしてみましょう。 ぺージの編集やいくつかの異なるページの閲覧などを実行します。 もしどこか変なら、バックアップからLocalSettings.phpや短いURLの設定中に変更したファイルを修復して、変更を元に戻しましょう。フォルダー名は/wikiに戻します。

共有ホストのユーザーの皆さんにお知らせ: 多くの共有ホスティング・サービスではMediaWikiのようなアプリケーションのインストールや更新、バックアップを自動的に行うアプリケーション・マネージャーを提供しています。 利用プランにこれが含まれたり、それらの機能を使い続けたい場合、ホスティング・サービスの技術サポートに相談し、MEdiaWikiのインストール用ディレクトリを手動で変更したばかりだと知らせることをお勧めします。

裏技

関連項目

外部リンク

脚注

  1. mod_rewriteのアンパサンドに関するバグ、13年経ってから一部のユーザ向けに部分的には解決された