メニューを切り替える
個人設定を切り替える
ログインしていません
編集を行うと、IPアドレスが公開されます。

MediaWikiのURLからindex.phpを消す

提供:Euro Truck Simulator 2 FanWiki
2023年11月16日 (木) 11:30時点におけるUmebossi (トーク | 投稿記録)による版 (ページの作成:「MediaWikiの1.40.1バージョンではURLは、<code>index.php=title?XXX</code>と全てindex.phpの引数としてURLが生成されるのですが、このURL構造を変更してindex.phpを消して<code>https://your-site.com/pagename</code>のようにウィキペディアと同じようなURL構造に変更します。 == LocalSettings.phpの編集 == まずはLocalSettings.phpを編集します。 <pre> $wgScript = "$wgScriptPath/index.php"; $wgRedi…」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)

MediaWikiの1.40.1バージョンではURLは、index.php=title?XXXと全てindex.phpの引数としてURLが生成されるのですが、このURL構造を変更してindex.phpを消してhttps://your-site.com/pagenameのようにウィキペディアと同じようなURL構造に変更します。

LocalSettings.phpの編集

まずはLocalSettings.phpを編集します。

$wgScript         = "$wgScriptPath/index.php";
$wgRedirectScript = "$wgScriptPath/redirect.php";
$wgArticlePath    = "$wgScriptPath/$1";

$wgScriptPathの変数は、LocalSettings.phpの序盤に定義されていますので注意が必要です。この$wgScriptPath変数が定義されている後に上記のコードを記述する必要があります。

.htaccessの作成・編集

2つ目は.htaccessを作成または編集します。この.htaccessはMediaWikiをインストールしたルートディレクトリになります。https://your-site/ 直下ならhttps://your-site/.htaccesshttps://your-site/wiki/ とWikiをイントールしたならhttps://your-site/wiki/.htaccessに置きます。

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?title=$1 [L,QSA]

RewriteBase /はMediaWikiをインストールしたディレクトリによって変更します。https://your-site.com/ にMediaWikiをインストールしたならこのまま変更無し、https://your-site.com/wiki/にMediaWikiをインストールしたなら、/wiki/と編集します。
ファイルを保存する時は、文字コードUTF-8改行はLFにすることを忘れないようにしてください。

上記の編集が完了して保存したら、2つのファイルをアップロードします。

URLからindex.phpを消す意味

URLからindex.phpを消す意味とはなんですか?と良く聞かれるのですが、これには諸説あります。

  • index.php=title?XXXというURLだと、index.phpに関連するページということでGoogleなどの検索エンジンに同じページの関連ページとしてみなされるためSEO上不利になる
  • index.php=title?XXXでも、Googleの検索エンジンには影響はない。だがURL的にカッコ悪い。これは、単にindex.phpから引数でページを読みこんでいるURLがかっこ悪くて、https://your-site/wiki/XXXとなっているほうがスタイリッシュという技術屋あるあるな自己満足的カスタムです。


ちなみに、当サイトがhttps://your-site/wiki/XXXとしたのは、完全に2つ目の理由です。やっぱりURLはindex.phpがないほうがカッコいいよねってだけです。

動作環境

参考資料

Cookieは私達のサービスを提供するのに役立ちます。このサービスを使用することにより、お客様はCookieの使用に同意するものとします。