HOME > 問題解決一覧 > [Docusaurus][Conoha WING]サーバでトップページ以外のURLでアクセスするとNot Foundのエラーがでる

事象

  • DocusaurusをビルドしてConohaのWINGサーバで公開するとトップページ以外のURLからリクエストすると404 Not Foundエラーになってしまいます。
    • トップページから他のページにアクセスする場合には正常に他のページも表示されます。

docusaurus conoha 404 error 01

  • 次のようにトップページ以外のURLを直接ブラウザのアドレスバーに指定してアクセスするとNot Foundエラーが表示されます。
    • トップページから他のページに遷移してから、そのページをリロードしても同様にNot Foundなります。

docusaurus conoha 404 error 02

解決策

  • (おそらく)ConohaのWINSサーバはApacheを利用しており、.htaccessを使ってトップページ以外のURLで直接アクセスした場合にはトップページのURLにアクセスするように設定しないといけないようです。
    • DocusaurusはReactがベースになっており、シングルページアプリケーションで動いているので基本はすべてトップページのhtmlを指定しないとうまく動かないのです。
  • なので、Conoha WINSサーバの公開しているディレクトリに.htaccessを作成して下記を記述すれば改善します。

.htaccess

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ ./index.html [QSA,L]

コメント

この記事に関する質問やご意見・ご感想がありましたら、下記よりコメントください。
Githubアカウントでログインしていれば誰でも投稿できます。