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

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

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

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

Apache

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

.htaccess

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

Q&A

解決済

1回答

884閲覧

Laravelで index.php を404にしたい

akomit

総合スコア18

Laravel

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

Apache

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

.htaccess

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

1グッド

1クリップ

投稿2019/04/18 05:54

Laravelで /index.php を404にすることは可能でしょうか。

.htaccessの設定で /index.php にアクセスした時に / に飛ばすことはできます。

htaccess

1RewriteEngine On 2RewriteCond %{THE_REQUEST} ^.*/index.php 3RewriteRule ^(.*)index.php$ https://example.com/$1 [R=301,L]

404を表示して、ブラウザから見るとindex.phpが存在しないように見せることはできますか?

mpyw👍を押しています

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

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

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

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

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

guest

回答1

0

ベストアンサー

現状、リダイレクト先を指定し301を返しているのを、以下のようにリダイレクト先を指定せずR=404とすることで実現できます。

RewriteRule ^(.*)index.php$ - [R=404,L]

補足
RewriteRuleのSyntaxはRewriteRule Pattern Substitution [flags]で、[flags]R[=code]と指定するとリダイレクト(codeはhttp Status Code)となります。
が、Substitutionで指定するリダイレクト先に-を指定することにより、どこにもリダイレクトされません。この時、R[=code]codeに404を指定することで、単に404 Not FoundをHTTPステータスコードとして返すことができます。

https://httpd.apache.org/docs/2.4/en/mod/mod_rewrite.html#rewriterule

投稿2019/04/18 06:02

編集2019/04/18 06:32
Y.H.

総合スコア7914

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

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

akomit

2019/04/18 08:15

ありがとうございます。 Apacheの404ページではなく、アプリケーション独自の404ページを表示させる場合は「アプリケーションの入り口でリクエストのURLをチェックしてindex.phpを含んでいたら404を返す」という処理が必要ですか?
Y.H.

2019/04/18 08:19

.htaccess にErrorDocument書いとけばいいんじゃないでしょうか? ErrorDocument 404 /404.html
akomit

2019/04/18 08:49

そのような方法もあるのですね。 ただ404ページに画像等を使うので、アプリケーション側で用意したものを使いたいなと思いまして...
Y.H.

2019/04/18 08:57 編集

ErrorDocument は独自に作成したエラーページを表示するためのものです。 /404.html は単なる例です。アプリケーション側で用意したエラーページのURを書けばいいです。 ※注意点としては src属性でのパス指定などはすべてサイトルートからの絶対パスで指定するくらいですかね。 参考: 【htaccess】403・404・500エラーのときに任意で作成したページを表示する https://qiita.com/4cres/items/01553cc51ba7d65918cb
akomit

2019/04/18 09:14

何度もすみません。 それぞれのパスは以下で /public/.htaccess /resources/views/errors/404.blade.php このように記述しましたが、ページが存在しないというエラーになります。 ErrorDocument 404 /resources/views/errors/404.blade.php 原因わかりますでしょうか?
akomit

2019/04/18 09:35

URLは https://example.com/index.php となり、以下のメッセージが出ます。 The requested URL /index.php was not found on this server. Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
akomit

2019/04/18 09:35

404.blade.php が存在していない時に出るエラーですよね
Y.H.

2019/04/18 09:38

ブラウザからアクセス可能なパスを指定しましょう。
akomit

2019/04/18 09:56

わかりました。何度もありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問