「MediaWikiのURLからindex.phpを消す」の版間の差分

提供:Euro Truck Simulator 2 FanWiki
ページの作成:「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…」
 
編集の要約なし
1行目: 1行目:
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構造に変更します。
MediaWikiの1.40.1バージョンではURLは、<code>index.php=title?XXX</code>と全てindex.phpの引数としてURLが生成されるのですが、このURL構造を変更してindex.phpを消して<pre>https://your-site.com/pagename</pre>のようにウィキペディアと同じようなURL構造に変更します。


== LocalSettings.phpの編集 ==
== LocalSettings.phpの編集 ==
11行目: 11行目:


== .htaccessの作成・編集 ==
== .htaccessの作成・編集 ==
2つ目は.htaccessを作成または編集します。この.htaccessはMediaWikiをインストールしたルートディレクトリになります。<code>https://your-site/</code> 直下なら<code>https://your-site/.htaccess</code><code>https://your-site/wiki/</code> とWikiをイントールしたなら<code>https://your-site/wiki/.htaccess</code>に置きます。
2つ目は.htaccessを作成または編集します。この.htaccessはMediaWikiをインストールしたルートディレクトリになります。
<pre>https://your-site/</pre>
直下なら
<pre>https://your-site/.htaccess</pre>
<pre>https://your-site/wiki/</pre>
とWikiをイントールしたなら
<pre>https://your-site/wiki/.htaccess</pre>
に置きます。<br>
 
<pre>
<pre>
RewriteEngine on
RewriteEngine on
19行目: 27行目:
RewriteRule ^(.+)$ index.php?title=$1 [L,QSA]
RewriteRule ^(.+)$ index.php?title=$1 [L,QSA]
</pre>
</pre>
<code>RewriteBase /</code>はMediaWikiをインストールしたディレクトリによって変更します。<code>https://your-site.com/</code> にMediaWikiをインストールしたならこのまま変更無し、<code>https://your-site.com/wiki/</code>にMediaWikiをインストールしたなら、/wiki/と編集します。<br>
<code>RewriteBase /</code>はMediaWikiをインストールしたディレクトリによって変更します。
<pre>https://your-site.com/</pre>
にMediaWikiをインストールしたならこのまま変更無し、
<pre>https://your-site.com/wiki/</pre>にMediaWikiをインストールしたなら、/wiki/と編集します。<br>
ファイルを保存する時は、文字コードUTF-8改行はLFにすることを忘れないようにしてください。<br>
ファイルを保存する時は、文字コードUTF-8改行はLFにすることを忘れないようにしてください。<br>


27行目: 38行目:
URLからindex.phpを消す意味とはなんですか?と良く聞かれるのですが、これには諸説あります。
URLからindex.phpを消す意味とはなんですか?と良く聞かれるのですが、これには諸説あります。
*<code>index.php=title?XXX</code>というURLだと、index.phpに関連するページということでGoogleなどの検索エンジンに同じページの関連ページとしてみなされるためSEO上不利になる
*<code>index.php=title?XXX</code>というURLだと、index.phpに関連するページということでGoogleなどの検索エンジンに同じページの関連ページとしてみなされるためSEO上不利になる
*<code>index.php=title?XXX</code>でも、Googleの検索エンジンには影響はない。だがURL的にカッコ悪い。これは、単にindex.phpから引数でページを読みこんでいるURLがかっこ悪くて、<code>https://your-site/wiki/XXX</code>となっているほうがスタイリッシュという技術屋あるあるな自己満足的カスタムです。
*<code>index.php=title?XXX</code>でも、Googleの検索エンジンには影響はない。だがURL的にカッコ悪い。これは、単にindex.phpから引数でページを読みこんでいるURLがかっこ悪くて、
<pre>https://your-site/wiki/XXX</pre>
となっているほうがスタイリッシュという技術屋あるあるな自己満足的カスタムです。
<br>
<br>
ちなみに、当サイトが<code>https://your-site/wiki/XXX</code>としたのは、完全に2つ目の理由です。やっぱりURLはindex.phpがないほうがカッコいいよねってだけです。
ちなみに、当サイトが
<pre>https://your-site/wiki/XXX</pre>
としたのは、完全に2つ目の理由です。やっぱりURLはindex.phpがないほうがカッコいいよねってだけです。


== 動作環境 ==
== 動作環境 ==

2023年11月16日 (木) 11:36時点における版

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/.htaccess
https://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がないほうがカッコいいよねってだけです。

動作環境

参考資料