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

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

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

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

Apache

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

.htaccess

Apacheウェブサーバーにおいて、ディレクトリ単位で設置及び設定を行う設定ファイルを指します。

AWS(Amazon Web Services)

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

Q&A

解決済

2回答

7968閲覧

トレイリングスラッシュ(Trailing Slash)がない時にページ表示されない

YYmd0525

総合スコア10

Laravel

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

Apache

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

.htaccess

Apacheウェブサーバーにおいて、ディレクトリ単位で設置及び設定を行う設定ファイルを指します。

AWS(Amazon Web Services)

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

0グッド

0クリップ

投稿2020/06/27 08:21

編集2020/06/27 08:24

AWSにてサイトの構築の練習をしております。
1つのドメインで複数のLaravelファイルを作りたく、サブディレクトリでLaravelを動かしているのですが

https://yydec5.com/laravel/
こちらだと動くのですが、

https://yydec5.com/laravel
こちらだと動きません。

laravelの.htaccessの問題かな?と思ったので、
/var/www/htmlにもう1つディレクトリを作り、index.htmlのみを配置しました。

https://yydec5.com/test/
とし、こちらは動きましたが

https://yydec5.com/test
こちらは動きませんでした。

ということは、Apacheの問題かな?と思い、httpd.confを

httpd

1 2ServerRoot "/etc/httpd" 3 4 5Listen 80 6 7 8Include conf.modules.d/*.conf 9 10 11User apache 12Group apache 13 14 15ServerAdmin root@localhost 16 17 18ServerName yydec5.com:80 19 20 21<Directory /> 22 AllowOverride none 23 Require all denied 24</Directory> 25 26 27DocumentRoot "/var/www/html" 28 29 30<Directory "/var/www"> 31 AllowOverride None 32 # Allow open access: 33 Require all granted 34</Directory> 35 36<Directory "/var/www/html"> 37 38 Options FollowSymLinks 39 40 AllowOverride All 41 42 Require all granted 43</Directory> 44 45 46<IfModule dir_module> 47 DirectoryIndex index.html 48</IfModule> 49 50 51<Files ".ht*"> 52 Require all denied 53</Files> 54 55 56ErrorLog "logs/error_log" 57 58 59LogLevel warn 60 61<IfModule log_config_module> 62 63 LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined 64 LogFormat "%h %l %u %t \"%r\" %>s %b" common 65 66 <IfModule logio_module> 67 # You need to enable mod_logio.c to use %I and %O 68 LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio 69 </IfModule> 70 71 CustomLog "logs/access_log" combined 72</IfModule> 73 74<IfModule alias_module> 75 76 ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" 77 78</IfModule> 79 80 81<Directory "/var/www/cgi-bin"> 82 AllowOverride None 83 Options None 84 Require all granted 85</Directory> 86 87<IfModule mime_module> 88 89 TypesConfig /etc/mime.types 90 91 92 AddType application/x-compress .Z 93 AddType application/x-gzip .gz .tgz 94 95 96 AddType text/html .shtml 97 AddOutputFilter INCLUDES .shtml 98</IfModule> 99 100 101AddDefaultCharset UTF-8 102 103<IfModule mime_magic_module> 104 MIMEMagicFile conf/magic 105</IfModule> 106 107 108EnableSendfile on 109 110# Supplemental configuration 111#Load config files in the "/etc/httpd/conf.d" directory, if any. 112IncludeOptional conf.d/*.conf 113 114TraceEnable off 115Header append X-FRAME-OPTIONS "SAMEORIGIN" 116Header set X-XSS-Protection "1; mode=block" 117Header set X-Content-Type-Options nosniff 118FileETag None 119Header unset X-Powered-By 120ServerTokens ProductOnly 121ServerSignature off 122 123RewriteEngine on 124RewriteRule ^(.*/[^./]+)$ $1/ [R=301,L]

https://blanktar.jp/blog/2014/01/apache-path-last-slash

こちらを参考に、

RewriteEngine on
RewriteRule ^(.*/[^./]+)$ $1/ [R=301,L]

をつけたり、/var/www/htmlに.htaccessを作り、

以前の質問であったように(https://teratail.com/questions/82171

RewriteEngine on

RewriteRule (.*)/$ $1 [R,L]

こちらをしてもダメでした。

DirectorySlash Off

それと、httpd.confに以上の記述があるとトレイリングスラッシュの自動補完がされないということで調べましたが、こちらもなく。

何か解決法があれば教えていただきたいです。
よろしくお願いします。

バージョン情報
Server version: Apache/2.4.6 (CentOS)
Laravel Framework 5.7.29

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

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

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

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

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

guest

回答2

0

自己解決

最善な解決方法かわかりませんが、やりたい事はできたので投稿します。

まず、ALBのセキュリティグループを今までHTTPSのみを許可してましたが、HTTPの80番ポートを許可しました。
これによりhttpでも表示されるようになりました。

https://example.com/hogeはhttp://example.com/hoge/へリダイレクトされ、表示されます。

そして、このhttpをhttpsにリダイレクトしたいので.htaccessを/var/www/htmlに置きます。

htaccess

1RewriteEngine On 2 3RewriteCond %{HTTP:X-Forwarded-Proto} !https 4RewriteRule ^(.*)?$ https://%{HTTP:Host}%{REQUEST_URI} [L,R=301]

以上の設定で解決しました。

投稿2020/07/02 21:38

YYmd0525

総合スコア10

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

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

0

URLを参照できてしまったのでアクセスしたのですが、https://yydec5.com/laravel にアクセスすると http://yydec5.com/laravel/ にリダイレクトされるような動きに感じました

また、http://yydec5.com/laravel/は「このサイトにアクセスできません」となっています

リダイレクト処理を確認してみてください

投稿2020/06/27 11:11

yukky1201

総合スコア2751

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

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

YYmd0525

2020/06/27 13:41

ご回答ありがとうございます。 まさしくその通りで、requestはhttpsですが、responseがhttpになっています。 その後httpd.confをいろいろいじりましたが、、解決せず。 ・Aliasを追記する(https://teratail.com/questions/173144)→今回は/laravel/を追加してみた ・httpをhttpsにリダイレクト設定(https://gist.github.com/koudaiii/8cb8e6a4f6daf180e0e5)→無限ループ もう少しヒントいただければ幸いです。
yukky1201

2020/06/27 17:05

httpd.conf で Listen 80 しか記載されてないので 443 を処理しているファイルが別にありそうです
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問