PukiWikiのhtaccessファイルの設定変更
Pukiwikiをサーバーに設置した場合、ドメインルートの.htaccessファイルを使って各種アクセス制限やトップページのURLの一本化(正規化)をします。その他のファルへの直接アクセス制限をします。また、トップページのURLから「?FrontPage」を取り除いて、トップページへのアドレスの一本化(正規化)をします。
htaccessファイルの設定変更
Pukiwikiを サーバー楽天 に設置した場合、ドメインルートの.htaccessファイルを使って各種アクセス制限やトップページのURLの一本化(正規化)をします。
なお、これらの設定はURLにサブドメインを使った場合で、サブディレクトリを使った場合の動作は確認していません。
htaccessファイルとhtpasswdのファイルへの直接アクセス制限をします。
# Prohibit direct access to .htaccess, .htpasswd or others # (If it's not set by default) <FilesMatch "^\.ht"> Order allow,deny Deny from all </FilesMatch>
その他のファルへの直接アクセス制限をします。
# Prohibit direct access <FilesMatch "\.(ini\.php|lng\.php|txt|gz|tgz|zip)$"> Order allow,deny Deny from all </FilesMatch> # Allow direct access to robots.txt <FilesMatch "^robots\.txt$"> Order Deny,Allow Allow from all </FilesMatch>
トップページのURLから「?FrontPage」を取り除きます。
ページを指定しない場合、「index.php」を取り除いてあっても、URLはhttp://hogehoge.jp/?FrontPageというアドレスになりますので、トップページから「?FrontPage」を取り除きます。URLは短い程良いとの考えと、SEOの観点から複数のアドレスで同じページにアクセスしないようにする為です。
.htaccessファイルでやる方法
.htaccessファイルに次の記述を追加します。PukiWikiをサブディレクトリに設定した場合です。
RewriteEngine on # Remove '?FrontPage' RewriteCond %{QUERY_STRING} ^FrontPage$ RewriteRule ^(.*)$ /$1? [R=301,L]
(lib/html.php)でやる方法も適用します
lib/html.phpの59行目付近を次のように変更します。しかし、この方法だけでは「?FrontPage」を取り除いたアドレスが生成されますが、「?FrontPage」を付加してアクセスすると「?FrontPage」が表示されてしまいます。
// $_LINK['top'] = "$script?" . rawurlencode($defaultpage); $_LINK['top'] = "$script";
トップページへのアドレスの一本化(正規化)をします。
トップページへのアドレスが次のどれでもアクセス可能なので、「index.php」を取り除いて下の2つの場合のみにリダイレクトします。これはSEO対策です。複数のURLで同じページが表示されないようにします。
http://hogehoge.jp/index.php?
http://hogehoge.jp/index.php
http://hogehoge.jp/?
http://hogehoge.jp/
# Remove index.(php|htm|html) RewriteCond %{THE_REQUEST} (^.*/index\.php|^.*/index\.htm) RewriteRule ^(.*)index\.(php|htm) /$1 [R=301,L]
ページの編集等の権限をベーシック認証にします。
<Limit POST> require valid-user AuthName "Please enter user name and password" Authtype Basic AuthUserFile /.htpasswdファイルへの絶対パス </Limit>