「MediaWikiのURLからindex.phpを消す」の版間の差分
ページの作成:「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を消して< | 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をインストールしたルートディレクトリになります。< | 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>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>index.php=title?XXX</code>でも、Googleの検索エンジンには影響はない。だがURL的にカッコ悪い。これは、単にindex.phpから引数でページを読みこんでいるURLがかっこ悪くて、 | ||
<pre>https://your-site/wiki/XXX</pre> | |||
となっているほうがスタイリッシュという技術屋あるあるな自己満足的カスタムです。 | |||
<br> | <br> | ||
ちなみに、当サイトが< | ちなみに、当サイトが | ||
<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がないほうがカッコいいよねってだけです。