@kencellarafood

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

【HP】.htmlなしで表示したい

解決したいこと

先ほど、サイトを新規でffftpを用いてアップロードしたのですが、トップページ以外のページが404エラーとなって表示されません。
urlも下部に「.html」と記述すると、表示されるのですが、これを「.html」なしで表示する方法はありますか?

サーバーはカラフルボックスを利用しております。
ワードプレスなどは使用しておらず、自分で記述したhtml,css,jsファイルなどをアップしています。

【対象ドメイン】
https://asakura-mie.com/

.htaccessファイル(カラフルボックス初期のもの)


# php -- BEGIN cPanel-generated handler, do not edit
# “ea-php74” パッケージを既定の “PHP” プログラミング言語として設定します。
<IfModule mime_module>
  AddHandler application/x-httpd-ea-php74 .php .php7 .phtml
</IfModule>
# php -- END cPanel-generated handler, do not edit

ファイル構造

スクリーンショット 2024-01-05 130659.png

0 likes

5Answer

これを「.html」なしで表示する方法はありますか?

無いと思います。ファイル拡張子も含めてURLなので。。。

アップロードしたHTMLファイルのファイル拡張子を削除すれば(リネームすれば)できるかも??

0Like

ご利用中のApacheにてmod_rewriteモジュールが利用可能な環境であれば
.htaccessに下記を記述すれば行けるかもしれません。

また.htaccessを修正する場合は事前にバックアップをおとりする事を推奨致します!

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^([^\.]+)$ $1.html [NC,L]
</IfModule>
0Like

Comments

  1. @kencellarafood

    Questioner

    コチラで、解決しました。ありがとうございます!

Comments

  1. @kencellarafood

    Questioner

    ありがとうございます。解決致しました!

考えられる方法が2つあります。

1.サブディレクトリに分ける

デフォルトでアクセスされるファイル(DirectoryIndex)が指定されている場合、サブディレクトリに分けることでファイル名なしでアクセスできます。
例えば index.htmlが設定されている場合、hoge.htmlhoge/index.htmlにすることで、https://example.com/hoge/のようにアクセスすることができます。

2.mod_rewriteでURLを書き換える

mod_rewriteが使えるなら、アクセスされた時のURLを書き換えて別のファイルを表示させることができます。

「htaccess 拡張子 省略」などと検索するといろいろヒットします。
例えばこちらの記事は.php拡張子についてですが、.htmlに置き換えることができると思います。

サーバーによって.htaccessで出来ることが異なる場合があります。
これらの方法が使えない場合もあると思うのでご了承ください。

カラフルボックスではmod_rewriteを使えるようですね。

0Like

Comments

  1. @kencellarafood

    Questioner

    ありがとうございます。解決致しました!

トップページ以外のページが404エラーとなって表示されません。

トップページは index.html ですよね。それはデフォルトページとして .htaccess に登録済みだから https://asakura-mie.com/ を要求すると web サーバーでルート直下の index.html を探して応答として返してくれるという仕組みになっています。

一方、他のページは同じくルート直下にある web-design.html などのようですが、それを要求するには https://asakura-mie.com/web-design.html というように当該ページのファイル名を拡張子まで含めて url に設定しないと見つからない、すなわち 404 エラーとなります。

メニューバーの設定は下のような a 要素の href 属性になっているようですが、この web-design を web-design.html に直せば問題は解決するはずです。それが一番現実的な解決策ではないでしょうか?

hp2.png

どうしても拡張子なしで呼び出したいということであれば、他の回答者の方が提案されている URL 書き換えという手段があると思います。ただ、その副作用で望まぬ書き換えが起こらないように注意が必要かと思います。

URL 書き換えが使えない環境への移植性も考える必要があるかも。

0Like

Comments

  1. @kencellarafood

    Questioner

    ありがとうございます。解決致しました!

Your answer might help someone💌