質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.02%
Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

解決済

LaravelでSSL(https)化すると404(Not Found)エラーが発生

sugamat
sugamat

総合スコア2

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

1回答

0グッド

0クリップ

436閲覧

投稿2022/11/19 09:34

編集2022/11/19 10:15

前提となる環境

AWSのLightsail
Ubuntu20.04 LTS
Apache2.4.41
Laravel 9 + Jetstream
PHP 8.1.12

概要

上記の環境下で、
Laravelでプロジェクトを作成し、
追加でJetstreamをインストールしました。
そして、Let's Encryptを使用し、SSL化しております

Apacheの設定ファイルを利用し、
httpはhttpsにリダイレクトするように設定しております。

ドキュメントルートのページは表示されますが、
それ以外のURLのページは、ページが見つからないというエラーが表示されます。

リダイレクトは、うまくいっていると思われます。

実現したいこと

ひととおり試してみたつもりですが、
とっかりつかめておりません。
ヒントになるような情報でも構いませんので、
ご助言いただけると助かります。

発生している問題・エラーメッセージ

Not Found
The requested URL was not found on this server.
Apache/2.4.41 (Ubuntu) Server at funnel-beta.lighting Port 443

試したこと

SSL化を止めると、httpのページは表示されます。

ネット情報によると、
Laravelのhttp化には、
Laravelのミドルウェアで対応する方法も試しましたが、
うまくいきませんでした。
リダイレクト自体はもともとうまく行っているように思われます。

Apacheのポート(80番)の設定で、
AllowOverride Allを可能にするという方法も試しましたが、
うまくいっておりません。

Laravelやブラウザのキャッシュなどもクリアしました。

画面

イメージ説明
Laravelで作成した初期状態のページです。
Jetstreamをインストールしたので、右上にログインと登録のページがあります。
これをクリックすると、ページが見つからないという404エラーが発生します。

イメージ説明

具体的なコード

リダイレクトの設定

/etc/apache2/sites-available/000-default.conf

<VirtualHost *:80> DocumentRoot /var/www/Laravelのプロジェクト・ディレクトリ/public ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined RewriteEngine on RewriteCond %{SERVER_NAME} =ドメイン名 RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent] </VirtualHost>

/etc/apache2/sites-available/000-default-le-ssl.conf

<IfModule mod_ssl.c> <VirtualHost *:443> DocumentRoot /var/www/Laravelのプロジェクト・ディレクトリ/public ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined ServerName ドメイン名 SSLCertificateFile /etc/letsencrypt/live/ドメイン名/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/ドメイン名/privkey.pem Include /etc/letsencrypt/options-ssl-apache.conf </VirtualHost> </IfModule>

以下のような質問にはグッドを送りましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

グッドが多くついた質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

yu_1985

2022/11/19 09:50

言葉での説明ではなく、実際の設定内容をここに貼り付けてください。 これだと具体的に何をしたのかよくわかりません。 また、質問とは関係ないですが、エラーページにApacheのバージョンを表示させないような設定を入れましょう。 https://atmarkit.itmedia.co.jp/ait/articles/0707/19/news141_2.html
sugamat

2022/11/19 10:17

質問を編集し、設定のコードを追加しました。セキュリティのためのアドバイスありがとうございます。
sugamat

2022/11/19 10:30

アドバイス通り、バージョンを非表示に設定しました。ありがとうございます。

回答1

0

自己解決

Apacheのポート(433番)の設定
(Let's Encrypt導入で自動生成された/etc/apache2/sites-available/000-default-le-ssl.conf)で、
下記のAllowOverride Allを設定を追加して、
解決しました

<IfModule mod_ssl.c> <VirtualHost *:443> 省略 <Directory /var/www/Laravelのプロジェクト・ディレクトリ/public> AllowOverride All # .htaccessの使用を許可 </Directory> 省略 </VirtualHost> </IfModule>

投稿2022/11/20 02:37

sugamat

総合スコア2

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.02%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。