HOME > > [Docusaurus][Conoha WING]サーバでトップページ以外のURLでアクセスするとNot Foundのエラーがでる
事象
- DocusaurusをビルドしてConohaのWINGサーバで公開するとトップページ以外のURLからリクエストすると404 Not Foundエラーになってしまいます。
- トップページから他 のページにアクセスする場合には正常に他のページも表示されます。
- 次のようにトップページ以外のURLを直接ブラウザのアドレスバーに指定してアクセスするとNot Foundエラーが表示されます。
- トップページから他のページに遷移してから、そのページをリロードしても同様にNot Foundなります。
解決策
- (おそらく)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]