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

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

新規登録して質問してみよう
ただいま回答率
85.50%
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

解決済

1回答

2197閲覧

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

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というインフラから提供する商用サービスです。

0グッド

0クリップ

投稿2022/11/19 09:34

編集2022/11/20 11:37

前提となる環境

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>

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

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

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

回答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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問