.htaccessとは

目次

.htaccessで行うこと

  • リダイレクト設定
  • BASIC認証

.htaccess作成サイト:
https://www.htaccesseditor.com/#a_basic

.htaccessファイルを設置する場所

.htaccessは複数設置することができ、ファイルを設置する場所でサーバーを制限できる範囲が変わります。

.htaccessはファイルを設置した階層内にしか反映されません

ルート(/) .htaccess (3番目に適用) /subdir .htaccess (2番目に適用) /subdir/subsubdir .htaccess (最初に適用) 優先順位 上がる

注意)複数の.htaccessファイルを使用すると設定の管理が複雑になるため、可能な限りルートの.htaccessで共通設定を行い、必要な場合にのみ下位ディレクトリで個別の設定を行うことをお勧めします。

.htaccessコメントアウト

htaccess内にコメントを付ける場合は、先頭文字を「#」とします。

デフォルトページ設定

「デフォルトページ」とはURLにディレクトリを指定した場合、どのファイルが優先して表示されるか定義するものです

.htaccessではデフォルトページの変更ができます

  • 優先1 : index.php
  • 優先2 : index.html
  • 優先3 : main.html

上記の場合

# Default Page Change
DirectoryIndex index.php main.html index.html

htaccessによるデフォルトページの設定
https://htaccess.cman.jp/explain/default_page.html

拡張子.htmlでPHPを実行させる

既に.htmlファイルとして存在するページを、URLを変更することなくPHPに移行できます。

1)Apache Web サーバーに対して、.php と .html 拡張子を持つファイルを PHP スクリプトとして扱うよう指示します。(サーバー側の設定)

2).php と .html 拡張子を持つファイルの MIME タイプを application/x-httpd-php として設定→ファイルが PHP コードを含んでいることを明示的に伝えます。

AddHandler php-script .php .html
AddType application/x-httpd-php .php .html
.php .html Apache AddHandler AddType PHP実行

注意)意図しない PHP コードの実行を防ぐために、必要な場合のみこの設定を使用することをお勧めします。

RewriteRule の構文について

RewriteRule ^path1/old/(.*)$ /path2/new/$1 [R=301,L] パターン マッチする パスの開始 を示す 任意の文字列を キャプチャ リダイレクト先のパス フラグ: R=301 – 301リダイレクト L – 最後のルール $1: キャプチャした文字列を参照 例: old/page.html → new/page.html

RewriteRuleのフラグL(Last)について

Lフラグのあるルールにマッチしたリクエストは、それ以降のルールを無視して処理を終了します。

これにより、意図しない URL の変更や、複数回のリダイレクトを避けることができます。

各レンタルサーバー会社の初期で用意されている.htaccessファイルがあります

.htaccessを自作する場合、もともとある各レンタルサーバー会社の初期で用意されている.htaccessファイルのないようを正しく把握する必要があります

さくらのレンタルサーバー ベーシック認証 .htaccess初期値を調べてみた
https://qiita.com/apple123/items/cc7d458ba98febd6038f

参考サイト

.htaccessとは?できること・設定方法を初心者向けに解説
https://white-link.com/sem-plus/htaccess

この記事を書いた人

コメント

コメントする

目次