Jump to content

Manual:短縮URL

From mediawiki.org
This page is a translated version of the page Manual:Short URL and the translation is 91% complete.
This article is about URL structure. For creating short URLs for articles, see Extension:ShortUrl . For creating a URL shortening service, see Extension:UrlShortener .

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

導入

目標

MediaWiki の既定のインストール パスは、おおよそ以下のようになります:

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

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

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

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

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

Some people do not recommend the last two configurations. See Manual:Wiki in site root directory for potential problems and solutions.

長所と短所

  • 長所: 短い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 に類するもの

Some people do not recommend this configuration. See Manual:Wiki in site root directory for potential problems and solutions.

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

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

Some people do not recommend this configuration. See Manual:Wiki in site root directory for potential problems and solutions.

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に書き換えます。

キャッシュの破棄

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

example.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年経ってから一部のユーザ向けに部分的には解決された