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

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

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

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

Q&A

1回答

1903閲覧

.htmlを省略したいのですが、index以外省略できません。。

music

総合スコア13

.htaccess

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

0グッド

0クリップ

投稿2021/10/19 11:37

編集2021/10/19 12:32

.htmlを省略したいのですが、index以外省略できません。。

sample.xsrv.jpに/index.html /menu.html /interior.htmlの
それぞれ3つのhtmlファイルがあるのですが、
ページを開いた時に、indexはxsrv.jpまでで、それ以外はjp/menu jp/interior
というようにhtmlを非表示にしたいです。

様々なサイトに少しずつ違う記述がありましたので、
いくつか試しましたが.html表記を省略できません。。

wwwを非表示・表示をそれぞれ試してみましたが、終始非表示のままです。

皆さんの知恵をお貸しください。。。。。

htaccess

1RewriteEngine on 2 3RewriteCond %{HTTPS} off 4RewriteRule ^(.*)$ https://sample.xsrv.jp/$1 [R=301,L] 5 6RewriteCond %{HTTP_HOST} ^www.sample.xsrv.com$ 7RewriteRule ^(.*) https://sample.xsrv.jp/$1 [R=301,L] 8 9RewriteCond %{REQUEST_FILENAME} !-d 10RewriteCond %{REQUEST_FILENAME}.html -f 11RewriteRule ^(.*)$ $1.html 12 13RewriteCond %{THE_REQUEST} ^.*/index.html 14RewriteRule ^(.*)index.html$ https://sample.xsrv.jp/$1 [R=301,L] 15 16SetEnvIf Request_URI ".*" Ngx_Cache_NoCacheMode=off 17SetEnvIf Request_URI ".*" Ngx_Cache_AllCacheMode 18

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

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

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

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

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

otn

2021/10/19 11:52

「.htmlを省略したい」とは具体的にどういうことをしたいのでしょうか? 「~~~というURLでブラウザからアクセスしたら、~~~というURLにリダイレクトしたい」 「~~~というURLでブラウザからアクセスしたら、~~~というURLにアクセスしたのと同じにしたい」 のように書いてください。
music

2021/10/19 12:33

申し訳ありません。 質問を修正致しました。
otn

2021/10/19 13:02

「~~~というURLでブラウザからアクセスしたら、~~~というURLにリダイレクトしたい」 「~~~というURLでブラウザからアクセスしたら、~~~というURLにアクセスしたのと同じにしたい」 のように書いてください。
music

2021/10/19 14:24

sample.xsrv.jp/menuにアクセスしたら、 sample.xsrv.jp/menu.htmlにアクセスしたのと同じにしたいです。 interior.htmlも同様。
guest

回答1

0

sample.xsrv.jp/menuにアクセスしたら、

sample.xsrv.jp/menu.htmlにアクセスしたのと同じにしたいです。

「その名前のファイルやディレクトリは無いが、.htmlを付けるとファイルがある場合に、書き換える」
ということにすると、ドキュメントルートの.htaccessに書くならば、

Apache

1RewriteEngine On 2~~ 3RewriteCond %{REQUEST_FILENAME} !-d 4RewriteCond %{REQUEST_FILENAME} !-f 5RewriteCond %{REQUEST_FILENAME}.html -f 6RewriteRule (.*) /$1.html

または、

Apache

1RewriteEngine On 2RewriteBase / 3~~ 4RewriteCond %{REQUEST_FILENAME} !-d 5RewriteCond %{REQUEST_FILENAME} !-f 6RewriteCond %{REQUEST_FILENAME}.html -f 7RewriteRule (.*) $1.html

でしょうか。https化とwww外しはそのままでいいでしょう。

投稿2021/10/19 15:03

otn

総合スコア85901

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

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

music

2021/10/20 00:30

ご回答ありがとうございます。 ご提示いただいたものを記述してみましたが、変化ありませんでした。。。
otn

2021/10/20 03:00

「変化ありません」とは? 「こういうURLを入力して、こういう結果を期待したが、こうなった」という風に書いてください。
music

2021/10/20 03:51

そのままの意味です。 sample.xsrv.jp/menuにアクセスしたら、 sample.xsrv.jp/menu.htmlにアクセスしたのと同じにしたいのですが、 htmlが表示されたままで、何も変わらなかったという事です。
otn

2021/10/20 04:03

> htmlが表示されたままで、 何のhtmlですか? > 何も変わらなかったという事です。 何とくらべて変わらないのでしょうか? 再度聞きますが、https://sample.xsrv.jp/menu というURLを入力したら、どうなるのでしょうか? どうならないかじゃなくて、どうなりますか?
otn

2021/10/20 09:48 編集

アドレスバーの表示のことですか。 RewriteRule行に [R] とか付けてませんか?
music

2021/10/20 09:57

質問で投稿した通りの記述になっています。
otn

2021/10/20 11:01

> 質問で投稿した通りの記述になっています。 ?? [R]は付けてないという意味なんですかね? .htaccessの内容をいったん全部消して、回答に書いた記述だけにして確認してみましょう。
music

2021/10/20 13:14

> 回答に書いた記述だけにして確認してみましょう。 すでに試しましたが、ダメでした。
otn

2021/10/20 14:57

ということは、この.htaccess以外の部分でリダイレクトが発生していると言うことです。 ・この.htaccessとmenu.htmlはドキュメントルート直下ですか? ・menu.htmlが実は単なるHTMLファイルじゃなくてPHPファイルだとかは無いですか? ・他の設定ファイルを調べてみましょう
music

2021/10/20 15:44

/sample.xsrv.jp/public_html/.htaccess /sample.xsrv.jp/public_html/index.html /sample.xsrv.jp/public_html/menu.html /sample.xsrv.jp/public_html/script.js /sample.xsrv.jp/public_html/css/index.css といった感じの構造になっています。。。 PHPは使用していません。
music

2021/10/21 02:40

なるほど、、、、 一度問い合わせてみます。 ご回答ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問