見出し画像

.htaccessについて

みなさんこんにちは!

今日は自分がロリポップサーバーでメールフォームの設定に苦戦していた時に取り扱った「.htaccess」について書いていこうと思います。


経緯

自前のポートフォリオサイトを作成しHTMLコードの中にphpを組み込み、お問い合わせ内容を指定アドレスにメールで自動送信するプログラムを設定しました。

その際に.htaccessファイルに以下のように表記してバージョンを指定しました。

"AddHandler php8.2-script .html"

そのディレクトリ及びその下層のディレクトリにある.htmlファイルに対して、「この階はphp8.2を使って処理していきますよ」と明示するようなイメージなんですが、この.htaccessがどういったものなのか解説していきます。


.htaccessとは


読み方は「ドットエイチティーアクセス」です。

Apacheサーバーを利用している環境下でサーバー設定をディレクトリレベルで調整することが可能です。

.htaccessファイルを格納したディレクトリ以下の全ての階層に影響を及ぼします。

この「.htaccess」を利用することで、

・URLのリダイレクト
・カスタムエラーページの設定
・アクセス制御
・パフォーマンス改善

といった多岐にわたる機能を実現することができます。

1つずつ掘り下げていきたいと思います。


URLのリダイレクト

.htaccessを使用すると、ウェブサイト上でページが移動した場合や、
URL構造を変更したい場合に、訪問者を正しいページに自動的にリダイレクトさせることができます。

また、mod_rewriteモジュールを使用することで、SEOフレンドリーなURLへの書き換えも可能になります。ウェブサイトの検索エンジンにおける可視性を高めることができます。

mod_rewriteについて

mod_rewriteモジュールはWebサイトのURLを動的に書き換えたり、リダイレクトを設定する時に使います。使用例は以下のようになります。

  • クリーンなURL

クリーンなURLを実現することで、動的なURL(例: example.com/index.php?page=about)を静的で覚えやすいURL(例: example.com/about)に変換できます

  • ドメインの変更

旧ドメインから新ドメインへのリダイレクトを設定し、SEOランキングを保持しつつユーザーを新しいドメインに誘導します。

  • HTTPSへの強制リダイレクト

セキュリティを強化するために、すべてのHTTPリクエストをHTTPSにリダイレクトします。


カスタムエラーページ

サイト訪問者が存在しないページにアクセスした時や、アクセス権がないコンテンツを要求した時に表示されるエラーページを、.htaccessファイルを使ってカスタマイズすることができます。

これにより、ユーザーに対してよりフレンドリーなメッセージを提供し、サイト内のナビゲーションのクオリティを向上することができます


アクセス制御

.htaccessを利用することで、特定のIPアドレスからのアクセスを許可したり、禁止したりすることができます。

また、パスワードによる保護を設定して、特定のディレクトリやファイルへのアクセスを制限することも可能です。

これにより、重要な情報を保護し、不正アクセスからウェブサイトを守ることができます


パフォーマンスの改善

.htaccessファイルを使用して、ファイルのキャッシュ設定を調整することにより、サイトの読み込み速度を向上させることができます。

ブラウザキャッシュを適切に設定することで、リソースの再ダウンロードを避け、エンドユーザーに対するレスポンスタイムを短縮することが可能です。


注意点

メリットはたくさんありますが、表裏一体でデメリットも存在します。
.htaccessファイルを誤って設定するとサイトの機能に大きな影響を与える可能性があり、最悪の場合はサイトが全く機能しなくなる可能性もあります

また、ディレクトリ単位での影響が出るため、多用するとサーバーのパフォーマンスに影響を与える可能性があります。

必要最低限の使用に留めることが推奨されます。


.htaccessファイルはWebサイトの運用において、小さなサイズに反して、非常に大きな役割を果たします。

使い方をしっかりと学び、正しく適用することで、ウェブサイトの管理をより柔軟かつ効果的にしていきたいですね。

この記事が皆さんの役に立つことを願っています。
もし何かご質問やフィードバックがあれば、ぜひコメントでお知らせください。

完読ありがとうございました!


この記事が気に入ったらサポートをしてみませんか?