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

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

新規登録して質問してみよう
ただいま回答率
85.50%
SPA(Single-page Application)

SPA(Single-page Application)は、単一のWebページのみでコンテンツの切り替えができるWebアプリケーションもしくはWebサイトです。ブラウザでのページ遷移がないため、デスクトップアプリケーションのようなUXを提供します。

HTTP

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

mod_rewrite

ApacheウェブサーバーのためのURL書き換えモジュールです。主にプリティーURLに使われていますが、同様に単純置換を超えた、多様なタスクの処理能力や柔軟性があります。

Apache

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

.htaccess

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

Q&A

1回答

795閲覧

.htaccessで正規化とSPA対応をしたいです

_._

総合スコア32

SPA(Single-page Application)

SPA(Single-page Application)は、単一のWebページのみでコンテンツの切り替えができるWebアプリケーションもしくはWebサイトです。ブラウザでのページ遷移がないため、デスクトップアプリケーションのようなUXを提供します。

HTTP

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

mod_rewrite

ApacheウェブサーバーのためのURL書き換えモジュールです。主にプリティーURLに使われていますが、同様に単純置換を超えた、多様なタスクの処理能力や柔軟性があります。

Apache

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

.htaccess

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

0グッド

0クリップ

投稿2018/10/22 00:36

編集2022/01/12 10:55

したいこと

「http」は「https」に301リダイレクト(正規化)
更に続けて
「/index.html」「/index.htm」は「/」に
「//index.html」「//index.htm」は「/~/」に301リダイレクト(さらにサブディレクトリも同様)(正規化)
更に続けて
ディレクトリの場合は
表示されるURLはそのままに「ディレクトリ/index.html」を表示させる
更に続けて
ファイルが存在しない場合は
表示されるURLはそのままにルートの「/index.html」を表示させる(SPA対応)

したこと

Apache

1DirectoryIndex index.html index.htm 2 3<IfModule mod_rewrite.c> 4 RewriteEngine on 5 6##http -> https 7 RewriteCond %{HTTPS} off 8 RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 9 10##/index.html, /index.htm -> / 11 RewriteBase / 12 RewriteCond %{REQUEST_URI} /index.(html|htm)$ 13 RewriteRule ^(.*)index.(html|htm)$ $1 [R=301,L] 14 15##SPA 16 RewriteBase / 17 RewriteRule ^index.html$ - [L] 18 RewriteCond %{REQUEST_FILENAME} !-f 19 RewriteCond %{REQUEST_FILENAME} !-d 20 RewriteRule . /index.html [L] 21</IfModule>

うまくいかないこと

したいことができません
解説サイトを見て試しているだけで理解はできていません
「http」は「https」に
の部分はできているっぽいです

SPA対応は
https://router.vuejs.org/ja/guide/essentials/history-mode.html
を丸写ししていますが
「表示されるURLはそのまま」にはなりません。

あと、できれば「http」から「https」へ「/index.html」「/index.htm」から「/」へ
の部分はリダイレクトが何度も発生しないように一括指定したいです

Apacheのバージョンはわかりません

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

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

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

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

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

guest

回答1

0

R=301というのはリダイレクト(ブラウザに指定したURLで再リクエストさせる)の指示です。
ブラウザに表示させるURLを変更したくないなら指定してはいけません。

ディレクトリの場合は

表示されるURLはそのままに「ディレクトリ/index.html」を表示させる

に相当するリライト記述がないですね。
これは、普通はそのままで表示されると思いますが。大元の設定ファイルに、
DirectoryIndex index.html
という記述があるはず。

投稿2018/10/22 03:33

otn

総合スコア84423

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問