web-dev-qa-db-ja.com

JavaScriptがパスを使用できるように、サブディレクトリ内のすべてのURLをindex.htmlに書き換えます

ドメインexample.com/~mypartの一部があります。そのフォルダーにはindex.htmlがあります。 example.com/~mypart/somethingにアクセスすると、「見つかりません」というエラーが表示されます。

example.com/~mypart/の後に文字列を含むすべてのアドレスをexample.com/~mypartindex.html)に書き換え、文字列を保持して、JavaScriptをindex.htmlで使用できるようにします。その文字列を取得します。

4
Reenergy

これは標準のfront-controllerパターンです。 mod_dirのFallbackResourceディレクティブは、.htaccess/~mypart/.htaccessファイルで使用できます。例えば:

FallbackResource /~mypart/index.html

/~mypartApacheのユーザーごとのWebディレクトリ の場合、/index.htmlを使用します。)

多くの例ではmod_rewriteを使用しますが、より複雑なURL書き換え要件がない限り、上記で十分です(推奨)。

参照:
https://httpd.Apache.org/docs/2.4/mod/mod_dir.html#fallbackresource

2
MrWhite

以下をhttaccessファイルに追加します。

    # if folder does not exist
    RewriteCond %{REQUEST_FILENAME} !-d
    # if file does not exist
    RewriteCond %{REQUEST_FILENAME} !-f
    # redirect anything to
    RewriteRule ^(.*)$ ~mypart/$1 [L]

期限のあるクレジット

その後、ページが読み込まれると、次のJavaScriptコードを使用して、要求されたファイルを取得できます

    var requestedResource = window.location.href.replace('example.com/~mypart/','');