Manual:短縮URL
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の可能性が高いでしょう。
他サーバー用ガイド
誰でも解説ページを作り、それを下のリストに載せることができます。 新しい解説ページを作るときは、下のページを参考にしながら、適切なページ名を付けるよう心がけて下さい。 それぞれの解説に独自のページを作成すると、複雑で不用な作業を回避することができます。 解説ページは、簡潔で読みやすくするように心がけて下さい。
どの短いURLの方法が本当に適切か、他の人の判断を助けるには、個別の方法を試してからページを編集し、そのガイドの「有効」または「無効」の件数を加算してください。合わせて、一覧の番号のリンクをクリックし、何がうまくいかなかったか簡単に(または希望するなら詳細に)説明してください。
URL で - example.com/wiki/Page_title に類するもの
root アクセス
これらの方法ではサーバ設定にアクセス権があることを前提にしています。 共有ホストをご利用でしたら、権限がないかもしれません。 この場合、「ルートアクセスなし」の方法を使う必要があります。 MediaWiki簡易URL構築ツールに直接飛んで、画面の指示に従います。 Select "I don't have root access" after entering your wiki's URL.
- wiki/Page title -- Lighttpd rewrite--root access x3
- wiki/Page title -- Cherokee rewrite--root access x1
- IIS8.5 x2 x1
- Abyss
(Apache向けのガイドはGuides節にリンクがあります)。
URL で - example.com/Page_title に類するもの
example.com/Page_title
URL の作成方法:
URL で - wiki.example.com/Page_title に類するもの
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にリンクのキャッシュを更新させましょう。
また別途、実行すべき内容とは:
- MySQLクエリ「TRUNCATE objectcache;」を実行する。または
$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のインストール用ディレクトリを手動で変更したばかりだと知らせることをお勧めします。
裏技
関連項目
- CGIモジュールの解説
- $wgUsePathInfo - 短縮したURLを使うべきかどうかを定義する構成設定
- ウィキのインストレーションをサイトのルート ディレクトリに置く場合の注意点
- $wgActionPaths - 編集や履歴など、他の操作用に定義する「見た目のよい」URL設定に使用できる方法
- コメント依頼: URLのクリーンアップ - 「編集、プレビュー、外装等用のよりクリーンなURL」を提案
外部リンク
- Apache用モジュール mod_rewrite - 要求されたURLをその都度書き換える
- MediaWiki 短いURL構築ツール - このマニュアルページかかれた設定よりも信頼性の高い、短いURL用設定を自動生成できるルール
- URL as UI by Jakob Nielsen on the importance of persistent, usable URLs.
脚注
- ↑ mod_rewriteのアンパサンドに関するバグ、13年経ってから一部のユーザ向けに部分的には解決された