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

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

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

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

.htaccess

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

Q&A

1回答

388閲覧

下層ページのURLに表記されている.htmlを消したいです。

mowry

総合スコア15

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

.htaccess

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

0グッド

0クリップ

投稿2022/04/11 06:08

編集2022/04/11 06:27

.htaccessに記述をすればいいとのことですが、どこにどういうふうに書けばいいのかわかりません
下に記述しているのは、中身になります。いろいろ調べて、

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^(.*)$ $1.html

と色々な箇所に記述しても何も変わりません。
お力添えをいただけると助かります。

#Action php-script-5.3 /php-bin/php-cgi #<FilesMatch "\.php$"> # SetHandler php-script-5.3 #</FilesMatch> Action php-script-7.1 /php71-bin/php-cgi <FilesMatch "\.php$"> SetHandler php-script-7.1 </FilesMatch> Options +FollowSymLinks <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://www.e-toms.com/$1 [R=301,L] </IfModule> # BEGIN WordPress # `BEGIN WordPress` から `END WordPress` までのディレクティブ (行) は # 動的に生成され、WordPress フィルターによってのみ修正が可能です。 # これらのマーカー間にあるディレクティブへのいかなる変更も上書きされてしまいます。 <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress

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

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

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

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

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

m.ts10806

2022/04/11 06:19

どのような構成のサイトなのでしょうか。PHP使う使わない、htmlのみの静的サイトか でも違ってくると思います
Lhankor_Mhy

2022/04/11 06:21

CSS3 の質問タグはこの質問とは関係がないように見えます。質問タグの削除をお願いします。 回答者は質問タグを見て回答する質問を選んでいます。 たとえば、JavaScriptの質問に[Java][JavaScript]というタグが付いていた場合、JavaScript に詳しい回答者が「Javaが関係するなら詳しくないから回答できないな」と読み飛ばすかもしれません。 結果的に質問が目に触れる回数が減り、回答が得られにくくなることがあるでしょう。 ですので、質問タグは適切に設定することをおすすめします。 (もちろん、これは強制ではありません)
mowry

2022/04/11 06:28

html cssだけの静的サイトになります。
Lhankor_Mhy

2022/04/11 06:37

ご対応ありがとうございました。
otn

2022/04/11 07:27

冒頭の4行が、コードブロック記述の中に含まれていませんが、両者の関係は? 実際の .htaccess の内容はどちらですか?
guest

回答1

0

DirectorySlash Off RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME}\.html -f RewriteRule ^.*$ /$0.html [L]
  • DirectorySlash Off
    • https://example.com/a のようなアクセスに対して、ディレクトリが存在する場合に https://example.com/a/ にリダイレクトする mod_dir の機能です。a.htmla/ ディレクトリが共に存在する場合に今回の方法で a.html へアクセスできなくなるので、この機能を Off にしておきます。
  • RewriteEngine On
    • mod_rewrite の機能を有効にします。
  • RewriteBase /
    • RewriteRule の第2引数を相対パスで書いた場合、RewriteBase を設定していないと %{REQUEST_FILENAME} に相当する絶対パスに変換されてしまいます。これでは期待するリライトができないため、RewriteRule の第2引数を相対パスで書いても動作するように RewriteBase を書いておきます。
  • RewriteCond %{REQUEST_FILENAME}\.html -f
    • https://example.com/a のアクセスに対して、a.html が存在すれば、という条件。
  • RewriteRule ^.*$ /$0.html [L]
    • https://example.com/a のアクセスに対して、(a.html が存在すれば)、a.html を表示するというルール。
    • 第2引数を /$0.html のように先頭に / を付けて絶対パスで書く場合は RewriteBase は不要です。
. ├── a │   └── index.html ├── a.html ├── b.html └── c └── index.html
  • https://example.com/a へアクセスすると a.html が表示されます。
  • https://example.com/a.html へアクセスすると a.html が表示されます。
  • https://example.com/a/ へアクセスすると a/index.html が表示されます。
  • https://example.com/b へアクセスすると b.html が表示されます。
  • https://example.com/b/ へアクセスすると 404 Not Found になります。
  • https://example.com/c へアクセスすると 404 Not Found になります。
    • DirectorySlash が有効な場合は /c/ へリダイレクトされます。
  • https://example.com/c/ へアクセスすると c/index.html が表示されます。

投稿2022/04/11 07:56

arcxor

総合スコア2859

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問