「ベーシック認証を設定したいけど、やり方がわからない」「認証がうまく機能せず、原因を知りたい」「IDやパスワードを忘れてしまった…」そんな悩みを抱えていませんか?
ベーシック認証は、ウェブサイトを手軽に保護できる便利な認証方式ですが、設定ミスやセキュリティリスクに注意が必要です。
本記事では、ベーシック認証の仕組みから設定方法、エラー解決策、さらには安全な運用方法までをわかりやすく解説します。
この記事を読めば、ベーシック認証を適切に設定し、トラブルを防ぎながら安全に運用できるようになります。
さっそく詳しく見ていきましょう。
この記事は以下のような人におすすめ!
- ベーシック認証(Basic Authentication)とは何か知りたい人
- どのような場面でベーシック認証を利用するのか知りたい
- .htaccessや.htpasswdを触るのが初めてで、具体的な記述方法がわからない
目次
ベーシック認証とは何か
ウェブサイトやサーバーを保護するために、簡単に導入できる認証方式の一つに「ベーシック認証」があります。
ベーシック認証は、ユーザー名とパスワードを入力することでアクセスを制限する仕組みです。
企業の社内システムや開発環境、テスト環境など、外部のユーザーに見せたくないページを保護する目的でよく使用されます。
この記事では、ベーシック認証の基本概念から仕組みまで、初心者でもわかりやすいように解説します。
1-1. ベーシック認証の基本概念
ベーシック認証とは?
ベーシック認証(Basic Authentication)とは、ウェブサーバーがクライアント(ユーザー)のアクセスを制限するための基本的な認証方式です。
認証が必要なページにアクセスしようとすると、ブラウザがユーザー名とパスワードの入力を求めるポップアップを表示します。
正しい情報を入力すると、サーバーが認証を許可し、ページを閲覧できるようになります。
1-1-1. どのような場面で使われるのか?
ベーシック認証は、以下のような用途でよく使用されます。
- 社内システムの保護:外部に公開する必要のない社内向けのサイトを制限する
- 開発・テスト環境のアクセス制限:本番環境とは別に、開発中のシステムに第三者がアクセスできないようにする
- 管理者専用ページの保護:特定のユーザーだけがアクセスできる管理画面を守る
- 簡易的なアクセス制御:会員制サイトのように高度なシステムを必要とせず、手軽にアクセス制限を行う
このように、ベーシック認証は比較的シンプルな仕組みながら、さまざまなシーンで利用されています。
1-2. ベーシック認証の仕組みと動作原理
1-2-1. 認証の流れ
ベーシック認証は、ウェブサーバーとクライアント(ブラウザ)の間で行われるシンプルな認証方式です。
その流れを以下に示します。
- ユーザーが保護されたページにアクセス
- ブラウザがウェブサーバーにリクエストを送信します。
- サーバーが認証を要求
- サーバーが「401 Unauthorized(未認証)」のステータスコードを返し、認証が必要であることを通知します。
- ユーザーがIDとパスワードを入力
- ブラウザのポップアップにユーザー名とパスワードを入力します。
- ブラウザが認証情報を送信
- 入力された情報は、Base64エンコードされた形でHTTPリクエストヘッダーに付与され、サーバーに送られます。
- サーバーが認証をチェックし、アクセスを許可または拒否
- 正しい認証情報ならページが表示され、不正な場合は再びログインを求められます。
このように、ベーシック認証はHTTPリクエストヘッダーを使った非常にシンプルな認証方式です。
1-2-2. ベーシック認証の通信の流れ(図解)
ステップ | 内容 |
---|---|
1 | ユーザーが認証が必要なページにアクセス |
2 | サーバーが「認証が必要」と通知(401エラー) |
3 | ユーザーがID・パスワードを入力 |
4 | 認証情報をBase64エンコードし、サーバーへ送信 |
5 | 認証成功ならページを表示、失敗なら再要求 |
1-2-3. なぜBase64エンコードされるのか?
ベーシック認証では、ユーザー名とパスワードがBase64でエンコードされて送信されます。
しかし、これは「暗号化」ではなく、単なる「エンコード」に過ぎません。
つまり、簡単に元の情報に戻せるため、盗聴されるとパスワードが漏洩するリスクがあります。
そのため、ベーシック認証を使う際には、必ずHTTPS(SSL/TLS)を使用し、通信の暗号化を行うことが重要です。
ベーシック認証のメリットとデメリット
ベーシック認証は、ウェブサイトやサーバーのアクセス制限を簡単に実装できる便利な認証方式です。
しかし、そのシンプルさゆえにメリットだけでなく、デメリットも存在します。
ここでは、ベーシック認証の利点と欠点を整理し、どのような場面で適切に活用すべきかを解説します。
2-1. ベーシック認証のメリット
ベーシック認証が広く利用されている理由は、導入が簡単でありながら一定のセキュリティ効果があるためです。
具体的なメリットを以下にまとめます。
2-1-1. 導入が簡単
ベーシック認証は、.htaccess(エイチティーアクセス)と.htpasswd(エイチティーパスワード)という2つのファイルを設定するだけで利用できます。
特別なプログラムやデータベースを用意する必要がなく、サーバーの設定だけで動作するため、初心者でも手軽に導入できます。
2-1-2. 特別なソフトウェアが不要
多くの認証方式では、サーバーやクライアント側に専用のソフトウェアを導入する必要があります。
しかし、ベーシック認証は標準的なHTTPの機能を利用しているため、追加のツールなしでほとんどのウェブサーバーとブラウザで使用できます。
2-1-3. すぐに利用できる
ベーシック認証は設定後すぐに有効化されるため、開発中のテスト環境や一時的なアクセス制限を行いたい場合に適しています。
例えば、新しいウェブサイトを公開する前に、一部の関係者だけが閲覧できるようにしたい場合に便利です。
2-1-4. 軽量で動作が速い
データベースや高度な処理を必要としないため、サーバーの負荷が少なく、動作が非常に軽快です。
特に、リソースの少ない共有サーバーや小規模なウェブサイトに適しています。
2-2. ベーシック認証のデメリット
一方で、ベーシック認証にはセキュリティ上のリスクや利便性の面でいくつかの欠点があります。
以下に主なデメリットを紹介します。
2-2-1. セキュリティが弱い(暗号化されていない)
ベーシック認証では、ユーザー名とパスワードがBase64という方式でエンコードされるだけで、暗号化はされていません。
つまり、HTTP通信を盗聴されると簡単に認証情報を解析されてしまいます。
解決策:
- HTTPS(SSL/TLS)を利用することで、通信を暗号化し、盗聴を防ぐことができます。
2-2-2. ユーザー管理がしにくい
ベーシック認証はデータベースを使用しないため、ユーザーの追加・削除を行う際に.htpasswdファイルを直接編集する必要があります。
ユーザー数が増えると管理が煩雑になり、大規模なシステムには向いていません。
解決策:
- アクセス管理が必要な場合は、フォーム認証やOAuth認証などを検討する。
2-2-3. ユーザーがパスワードを変更できない
ベーシック認証では、ユーザーが自身のパスワードを変更する機能がありません。
管理者が.htpasswdファイルを編集しない限り、パスワードを更新することができないため、利便性が低いです。
解決策:
- ユーザーごとにパスワード管理が必要な場合は、別の認証方式を導入する。
2-2-4. ログアウトが難しい
一般的なウェブアプリでは、ユーザーが明示的に「ログアウト」ボタンを押して認証情報をクリアできます。
しかし、ベーシック認証はブラウザ側で認証情報を保持するため、一度認証するとログアウトするのが難しくなります。
解決策:
- ブラウザを閉じるか、JavaScriptを利用した強制ログアウトの仕組みを導入する。
2-3. ベーシック認証のメリット・デメリットの比較表
項目 | メリット | デメリット |
---|---|---|
導入のしやすさ | 簡単に設定できる | ユーザー管理が手動で面倒 |
セキュリティ | アクセス制限ができる | 暗号化されておらず、盗聴リスクがある |
動作の軽さ | データベース不要で高速 | ユーザーがパスワードを変更できない |
利便性 | 特別なソフトウェアが不要 | ログアウトが難しい |
ベーシック認証の設定方法
ベーシック認証を設定することで、特定のページやディレクトリへのアクセスを制限し、許可されたユーザーのみに閲覧を許可できます。
設定は主に.htaccessファイルと.htpasswdファイルの2つを使用します。
これらを適切に設定することで、簡単に認証機能を導入できます。
ここでは、.htaccessファイルと.htpasswdファイルの作成・設定方法を詳しく解説します。
3-1. .htaccessファイルの作成と設定方法
.htaccess(エイチティーアクセス)ファイルは、Apache(アパッチ)ウェブサーバーの設定をディレクトリ単位で変更するための設定ファイルです。
ベーシック認証を有効にするには、このファイルに適切な設定を記述する必要があります。
3-1-1. .htaccessファイルの基本構造
以下のような内容を記述することで、特定のディレクトリにベーシック認証を設定できます。
AuthType Basic
AuthName "Restricted Area"
AuthUserFile /path/to/.htpasswd
Require valid-user
設定項目 | 説明 |
---|---|
AuthType Basic | 認証の種類を「Basic」に指定 |
AuthName “Restricted Area” | 認証画面に表示されるメッセージ |
AuthUserFile /path/to/.htpasswd | ユーザー情報が記録された.htpasswdファイルの場所 |
Require valid-user | 許可されたユーザーのみアクセス可能にする設定 |
3-1-2. .htaccessファイルの設置場所
.htaccessファイルは、アクセス制限をかけたいディレクトリに設置します。
たとえば、/var/www/html/private/
ディレクトリにベーシック認証を適用する場合は、そのディレクトリ内に.htaccessファイルを配置します。
3-1-3. .htaccessファイルの作成手順
- テキストエディタを開く(例:Windowsなら「メモ帳」、Macなら「TextEdit」)
- 上記の設定を記述
- ファイル名を「.htaccess」として保存(拡張子なし)
- サーバーの制限をかけたいディレクトリにアップロード
3-1-4. .htaccessが正しく動作しない場合のチェックポイント
- .htaccessが有効になっているか確認する(Apacheの設定ファイル httpd.conf で
AllowOverride All
が設定されているかチェック) - .htpasswdファイルのパスが正しいか確認する
- サーバーの再起動が必要な場合があるので、適宜再起動を実行
3-2. .htpasswdファイルの作成と設定方法
.htpasswd(エイチティーパスワード)ファイルは、ベーシック認証で使用するユーザー名とパスワードを記録するファイルです。
ここに登録されたユーザーだけが認証を通過できます。
3-2-1. .htpasswdファイルの基本構造
.htpasswdファイルには、ユーザー名とパスワード(ハッシュ化されたもの)が保存されます。
例:
user1:$apr1$8e8h9eYx$wXtX1v6xXzH0wz0bXc2sD.
user2:$apr1$3bJt9bF5$uJ2C2wG0KgZ9rQlxTxD4p/
項目 | 説明 |
---|---|
user1, user2 | 認証を許可するユーザー名 |
$apr1$… | ハッシュ化されたパスワード(MD5形式) |
3-2-2. .htpasswdファイルの作成手順
1. コマンドラインで作成する方法(推奨)
LinuxやMacでは、以下のコマンドを使用して簡単に.htpasswdファイルを作成できます。
htpasswd -c /path/to/.htpasswd user1
-c
オプションは、新規作成時のみ指定(追加時は不要)。user1
の部分は任意のユーザー名に変更可能。
追加のユーザーを登録する場合は、-c
を省略して以下のように実行します。
htpasswd /path/to/.htpasswd user2
2. オンラインツールを利用する方法
コマンドが使えない場合は、オンラインの.htpasswd生成ツールを使う方法もあります。
- 「.htpasswd generator」などで検索し、パスワードをハッシュ化
- 生成された文字列をコピーして.htpasswdファイルに保存
3. 手動で作成する方法(非推奨)
平文のパスワードをそのまま保存するとセキュリティ上危険なため、手動で作成する場合はハッシュ化した値を記述するようにしてください。
3-2-3. .htpasswdファイルの設置場所
.htpasswdファイルは、公開ディレクトリ(/public_html など)には置かず、外部からアクセスできない場所に保存することが重要です。
推奨パス例:
/home/username/.htpasswd
/etc/apache2/.htpasswd
3-2-4. .htpasswdが正しく動作しない場合のチェックポイント
.htpasswd
のパスが.htaccess
内で正しく指定されているか確認.htpasswd
のパーミッションを適切に設定(例:chmod 640
)- Apacheの設定で
.htaccess
の制限が有効になっているかチェック
ベーシック認証のセキュリティ上の注意点
ベーシック認証は手軽に導入できる認証方式ですが、セキュリティ上の脆弱性があるため、適切な対策を講じないと不正アクセスや情報漏洩のリスクが高まります。
ここでは、ベーシック認証の主なリスクを解説し、安全に運用するための対策を紹介します。
4-1. ベーシック認証の脆弱性とリスク
ベーシック認証には、以下のようなセキュリティ上の課題があります。
4-1-1. 認証情報が暗号化されていない
ベーシック認証では、ユーザー名とパスワードがBase64でエンコードされて送信されます。
しかし、Base64は単なる文字列変換であり、暗号化とは異なります。
そのため、通信が盗聴されると簡単にパスワードを解読される危険があります。
リスクの例
- HTTP通信の場合、認証情報がそのまま盗聴される可能性がある
- フリーWi-Fiや公共ネットワークを利用すると、第三者に傍受されやすい
4-1-2. 総当たり攻撃(ブルートフォース攻撃)に弱い
ベーシック認証には、ログイン試行回数を制限する機能がありません。
そのため、攻撃者が無制限にパスワードを試すことができ、総当たり攻撃(ブルートフォース攻撃)に対して無防備です。
リスクの例
- 短いパスワードや単純なパスワードは容易に突破される
- ボットによる自動攻撃を受けると、数分で認証が突破される可能性がある
4-1-3. ログアウト機能がない
ベーシック認証では、ブラウザが認証情報をキャッシュするため、ログアウトの機能がありません。
ログアウトするには、ブラウザを完全に閉じるか、特定のスクリプトを実行する必要があります。
リスクの例
- 共有PCで使用すると、次のユーザーがそのままログインできてしまう
- ユーザー自身が明示的にログアウトする手段がないため、不正利用のリスクが高まる
4-1-4. .htpasswdファイルの漏洩リスク
ベーシック認証で使用する.htpasswdファイルは、認証情報を保存する重要なファイルです。
これが誤ってWeb公開ディレクトリに配置されると、誰でもダウンロードできる状態になり、全ユーザーのパスワードが流出する可能性があります。
リスクの例
- .htpasswdファイルを適切な場所に配置しないと、第三者が取得できる
- 適切なアクセス制限を設定しないと、不正に情報が漏洩する
4-2. セキュリティを強化するための対策
ベーシック認証を安全に利用するためには、以下の対策を講じることが重要です。
4-2-1. HTTPSを使用して通信を暗号化する
ベーシック認証の最大の弱点である「認証情報の平文送信」を防ぐために、必ずHTTPS(SSL/TLS)を導入することが推奨されます。
対策方法
- サーバーにSSL証明書を導入し、HTTPS通信を強制する
- .htaccessを設定し、HTTPアクセスを自動的にHTTPSへリダイレクトする
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]
4-2-2. 強力なパスワードを設定する
総当たり攻撃を防ぐため、推測されにくい強力なパスワードを設定することが重要です。
パスワード設定のポイント
- 10文字以上の英数字+記号を含める(例:A!s2@d3#F4$g5%)
- ユーザーごとに異なるパスワードを設定する
- 定期的にパスワードを変更する
4-2-3. IPアドレス制限を設定する
特定のIPアドレスのみベーシック認証を許可することで、不正アクセスを防ぐことができます。
.htaccessでIP制限を設定
Order Deny,Allow
Deny from all
Allow from 192.168.1.1
Allow from 203.0.113.0/24
4-2-4. ログイン試行回数の制限を設ける
総当たり攻撃を防ぐため、ログイン試行回数を制限する設定を行うと効果的です。
Apacheのmod_security
やfail2ban
を活用すると、一定回数の失敗後にアクセスをブロックできます。
fail2banの設定例(Linux環境)
apt install fail2ban
でインストール/etc/fail2ban/jail.local
に以下を追加
[apache-auth]
enabled = true
port = http,https
filter = apache-auth
logpath = /var/log/apache2/error.log
maxretry = 5
bantime = 3600
4-2-5. .htpasswdファイルのアクセス制限を行う
.htpasswdファイルを安全に管理するために、外部からのアクセスを防ぐ設定を追加します。
.htaccessで.htpasswdファイルを保護
<Files ".htpasswd">
Order Allow,Deny
Deny from all
</Files>
ベーシック認証の代替となる認証方式
ベーシック認証は、簡単に導入できる認証方式ですが、セキュリティの弱点があるため、より安全な認証方式が求められることがあります。
ここでは、ベーシック認証の代替となる3つの認証方式、「ダイジェスト認証」「フォーム認証」「OAuth認証」について解説します。
それぞれの特徴やメリット・デメリットを理解し、適切な認証方式を選択しましょう。
5-1. ダイジェスト認証とは
5-1-1. ダイジェスト認証の概要
ダイジェスト認証(Digest Authentication)は、ベーシック認証のセキュリティを強化した認証方式です。
ユーザー名とパスワードをそのまま送信するのではなく、ハッシュ化(暗号化)された形で送信するため、盗聴リスクを軽減できます。
5-1-2. ダイジェスト認証の仕組み
ダイジェスト認証では、以下のような流れで認証が行われます。
- クライアント(ユーザー)が認証が必要なページにアクセス
- サーバーが「認証が必要」と応答し、ダイジェスト認証用のランダムな値(ノンス)を返す
- クライアントは、ユーザー名・パスワード・ノンスを組み合わせてハッシュ化し、サーバーに送信
- サーバーが、受け取ったハッシュ値を計算し、一致すれば認証成功
5-1-3. ダイジェスト認証のメリット・デメリット
メリット | デメリット |
---|---|
パスワードが暗号化されて送信される | HTTPSを使用しない場合、依然として中間者攻撃のリスクがある |
ベーシック認証よりもセキュリティが高い | 一部の古いブラウザやサーバーでは対応していないことがある |
パスワードがサーバーに保存されず、ハッシュ化された形で検証される | 設定がやや複雑で、サポートが減少傾向にある |
5-2. フォーム認証とは
5-2-1. フォーム認証の概要
フォーム認証(Form-based Authentication)は、ウェブサイトのログインフォームを使用して認証を行う方式です。
ECサイトや会員制サイトなど、ほとんどのウェブサービスで広く採用されています。
5-2-2. フォーム認証の仕組み
- ユーザーがログインページのフォームにIDとパスワードを入力
- フォームデータがサーバーに送信され、データベース内のユーザー情報と照合
- 認証が成功すると、セッション情報やCookieを発行し、ログイン状態を保持
5-2-3. フォーム認証のメリット・デメリット
メリット | デメリット |
---|---|
ユーザーフレンドリーなログイン画面を作成できる | パスワードが漏洩すると不正アクセスされるリスクがある |
セッションやCookieを利用することで、ログイン状態を保持できる | セッションハイジャックやCSRF攻撃に注意が必要 |
多要素認証(2FA)を導入しやすい | HTTPSを使用しないと通信が盗聴される可能性がある |
5-2-4. フォーム認証のセキュリティ対策
- HTTPSを使用して通信を暗号化する
- CSRF(クロスサイトリクエストフォージェリ)対策を実施する(トークンを活用)
- ログイン試行回数を制限し、不正アクセスを防ぐ
- 多要素認証(MFA)を導入し、パスワード漏洩のリスクを低減
5-3. OAuth認証とは
5-3-1. OAuth認証の概要
OAuth(オーオース)認証は、ユーザーのパスワードを直接やり取りせずに認証を行う仕組みです。
GoogleやFacebookのアカウントを利用して、他のサービスにログインできる「ソーシャルログイン」もOAuthの一種です。
5-3-2. OAuth認証の仕組み
- ユーザーがOAuth対応の外部サービス(例:Google)でログインを許可
- 認証が成功すると、外部サービスから「アクセストークン」が発行される
- アクセストークンを使用して、認証済みのユーザーとしてリクエストを送信
- サーバーはアクセストークンを検証し、正当なユーザーであればアクセスを許可
5-3-3. OAuth認証のメリット・デメリット
メリット | デメリット |
---|---|
ユーザーがパスワードを入力しなくてもログインできる | 実装が複雑で、開発コストが高い |
外部の認証機関を利用するため、セキュリティが高い | OAuth提供サービスが停止すると、ログインできなくなる |
パスワードリスト攻撃を防ぐことができる | アクセストークンの管理を適切に行わないと、不正利用のリスクがある |
5-3-4. OAuth認証が適しているケース
- 外部サービスの認証を活用したい場合(例:Googleアカウントでログイン)
- ユーザーにパスワードを設定させたくない場合
- セキュリティを強化したい場合(ベーシック認証よりも安全)
ベーシック認証に関するFAQ
ベーシック認証を設定した際に、「うまく機能しない」「IDやパスワードを忘れた」「認証を解除したい」などのトラブルが発生することがあります。
このセクションでは、ベーシック認証に関するよくある質問とその解決策を詳しく解説します。
6-1. ベーシック認証が機能しない場合の対処法
ベーシック認証が正しく動作しない場合、いくつかの原因が考えられます。
ここでは、主な原因とその解決策を紹介します。
6-1-1. .htaccessの記述ミスを確認する
ベーシック認証を設定するための.htaccessファイルの記述に誤りがあると、認証が機能しません。
確認ポイント
AuthType Basic
やAuthName
の記述が正しいか.htpasswd
ファイルのパスが正しく指定されているかRequire valid-user
の設定が適切か
修正例(正しい .htaccess の記述)
AuthType Basic
AuthName "Restricted Area"
AuthUserFile /path/to/.htpasswd
Require valid-user
6-1-2. .htpasswdファイルのパスが正しいか確認する
.htpasswd
ファイルのパスが誤っていると、サーバーが認証情報を読み取れず、ベーシック認証が機能しません。
対処法
- 絶対パスを指定しているか確認(相対パスだと誤動作する可能性あり)
.htpasswd
のパーミッションを適切に設定(例:chmod 640 /path/to/.htpasswd
)
6-1-3. Apacheの設定を確認し、再起動する
Apacheの設定が正しく適用されていないと、.htaccessの変更が反映されないことがあります。
対処法
- Apacheの設定ファイル(httpd.conf または apache2.conf)で、
AllowOverride All
が設定されているか確認 - 設定を変更した場合は、Apacheを再起動する
sudo systemctl restart apache2 # Ubuntu/Debian系
sudo systemctl restart httpd # CentOS系
6-2. ベーシック認証のID・パスワードを忘れた場合の対応策
6-2-1. .htpasswdファイルを確認する
ベーシック認証のIDやパスワードは、.htpasswdファイルに保存されています。
パスワードはハッシュ化されているため、直接確認はできませんが、ID(ユーザー名)はそのまま表示されています。
確認手順
.htpasswd
ファイルを開く
cat /path/to/.htpasswd
- ユーザー名を確認
user1:$apr1$8e8h9eYx$wXtX1v6xXzH0wz0bXc2sD.
user2:$apr1$3bJt9bF5$uJ2C2wG0KgZ9rQlxTxD4p/
6-2-2. パスワードを再設定する
パスワードを忘れた場合は、新しいパスワードを設定する必要があります。
以下のコマンドを使うことで、新しいパスワードを設定できます。
htpasswd /path/to/.htpasswd user1
6-2-3. IDとパスワードを安全に管理する
ベーシック認証のIDやパスワードを忘れないように、以下の方法で管理することをおすすめします。
- パスワード管理ツールを活用する(例:1Password, Bitwarden, KeePass)
- 定期的にパスワードを変更し、安全な場所に保存する
- ベーシック認証をより安全な認証方式(OAuthやフォーム認証)に置き換える
6-3. ベーシック認証を解除する方法
ベーシック認証を解除したい場合は、.htaccessの設定を変更または削除することで対応できます。
6-3-1. .htaccessファイルの該当部分を削除する
.htaccessファイルのベーシック認証に関する設定を削除すれば、認証が無効になります。
削除対象の設定(例)
AuthType Basic
AuthName "Restricted Area"
AuthUserFile /path/to/.htpasswd
Require valid-user
6-3-2. .htaccessファイルを無効化する
.htaccessファイルを無効にしたい場合、一時的に名前を変更しておくのも有効です。
mv /path/to/.htaccess /path/to/.htaccess.bak
これにより、設定が適用されなくなります。
6-3-3. Apacheの設定を変更する(サーバー全体の解除)
サーバー全体でベーシック認証を無効にする場合、Apacheの設定ファイルを変更します。
手順
httpd.conf
またはapache2.conf
を開くAllowOverride None
を設定し、.htaccessの適用を無効化- Apacheを再起動
sudo systemctl restart apache2