ドメイントップから特定ページに転送

提供:あわ自由帳

このサイトは、ドメイントップにページは存在しません。すべてサブディレクトに、コンテンツが存在します。トップドメインにアクセスがあった時と、存在しないディレクトリ、ファイルにアクセスが有った場合に備えた設定について書いておきます。

.htaccessの設定

下記の設定は、ファイルが存在しない場合、/Wiki/[ファイル名]ページが表示すます。
「http://sudachi.jp/AAAAAAAAAAAAA」は「http://sudachi.jp/wiki/AAAAAAAAAAAAA」に転送されます。

.htaccessの作成

このサイトの場合、「ドメインのみの場合、Wikiトップページ表示」が機能してないように思われます。

[root@host3 ~]# vi /var/www/html/.htaccess

DirectoryIndex index.php

RewriteEngine On
RewriteBase /

# ファイルが存在すれば直接表示
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-d

# ファイルが存在しない場合、[/Wiki/トップページ] を表示
# RewriteRule ^(.*)$ %{DOCUMENT_ROOT}/wiki/index.php [L]

# ファイルが存在しない場合、[/Wiki/ファイル名] ページを表示
RewriteRule ^(.+)$ %{DOCUMENT_ROOT}/wiki/index.php?title=$1 [L,QSA]

# ドメインのみの場合、Wikiトップページ表示
RewriteRule ^$ %{DOCUMENT_ROOT}/wiki/index.php [L]

.htaccessの所有者を変更

[root@host3 ~]# chown sysop:sysop /var/www/html/.htaccess

index.phpの設定

上記、.htaccessの設定だと必要ないですが念のためにこしらへておきます。
上記の「ファイルが存在しない場合」の設定を両方ともコメントアウトすると必要になります。その場合は、ドメインのみは「index.php」で転送され、ファイルが存在しないと、Apacheのエラーページに飛びます。

index.phpの作製

[root@host3 ~]# vi /var/www/html/index.php
<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: /wiki/") ;
?>

index.phpの所有者を変更

[root@host3 ~]# chown sysop:sysop /var/www/html/index.php