PHPベースのオープンソースのウィキソフトウェア DokuWikiのURL書き換えの設定について解説します。
DokuWikiのデフォルトURLは分かりにくいので、.htaccessファイルと設定変更でスラッシュ区切りのURLへ書き換えるのがおすすめです。
なお、今回のバージョンは以下の通りです。
- DokuWiki 2018-04-22a “Greebo”
DokuWikiのデフォルトURL
DokuWikiのURLは、デフォルトの状態では以下のようになっています。
https://yourdomain.com/doku.php?id=wiki:welcome
このURLでは、パラメータによってページが識別されることになり、検索エンジンによっては別のページとして正しく認識されない場合もあります。
そのため、以下のようなスラッシュ区切りのURLに書き換えることが望ましいです。
https://yourdomain.com/wiki/welcome
こちらの書き換えたURLの方がわかりやすく、見た目も綺麗ですね。
.htaccessによるURL書き換えの設定
では、.htaccessファイルでURL書き換えの設定を行います。
設定項目userewrite・useslashの変更
まずは、設定項目のuserewrite・useslashを次のように変更します。
設定項目 | 説明 | 設定内容 |
---|---|---|
userewrite | URLの書き換え | 1(.htaccess) |
useslash | スラッシュ区切り | 1(チェックオン) |
.htaccessファイルの変更
公開ディレクトリ(ドキュメントルート)直下に.htaccessファイルを作成します。
.htaccess.distファイルをコピーすればOKです。
以下のようにコメントアウトを外します。
すでにURL書き換えの記述があるので簡単です。
## Uncomment these rules if you want to have nice URLs using
## $conf['userewrite'] = 1 - not needed for rewrite mode 2
RewriteEngine on
RewriteRule ^_media/(.*) lib/exe/fetch.php?media=$1 [QSA,L]
RewriteRule ^_detail/(.*) lib/exe/detail.php?media=$1 [QSA,L]
RewriteRule ^_export/([^/]+)/(.*) doku.php?do=export_$1&id=$2 [QSA,L]
RewriteRule ^$ doku.php [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) doku.php?id=$1 [QSA,L]
RewriteRule ^index.php$ doku.php
## Not all installations will require the following line. If you do,
## change "/dokuwiki" to the path to your dokuwiki directory relative
## to your document root.
#RewriteBase /dokuwiki
なお、RewriteBaseの箇所は実際の環境に合わせて、DokuWikiの配置場所が公開ディレクトリ直下ではない場合はコメントアウトを外して変更します。
このURLの書き換えによって、apachectl statusコマンドが影響を受けます。
もし、サーバー監視などでこのコマンドを利用するなら、以下のように間に1文追加します。
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/server-status$
RewriteRule (.*) doku.php?id=$1 [QSA,L]
wwwあり/なし、http/httpsの統一は、こちらの記事を参考にしてください。
最後に
今回は、DokuWikiのURL書き換えの設定について解説しました。
.htaccessファイルと設定変更でスラッシュ区切りの綺麗なURLへ書き換えましょう。
DokuWikiの使い方については、こちらの記事にまとめています。
コメント