URL 書き換え: CSS、JS、および画像の読み込みの問題を解決する
URL 書き換えでは、CSS、JS が、リダイレクト後に画像ファイルの読み込みが停止します。この問題は通常、相対パスが使用され、リダイレクト ルールがベース URL を変更する場合に発生します。
説明として、次の構成を考えてみましょう。
Options +FollowSymLinks RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteRule ^detail/([0-9]+)/?$ detail.php?id=
この場合、ルールは次のような URL をリダイレクトします。 「http://localhost/detail/123」から「http://localhost/detail.php?id=123」。リダイレクトは正常に行われますが、相対パスが無効になっているため、「http://localhost/css/」および「http://localhost/js/」にある CSS、JS、および画像ファイルの読み込みに失敗します。
問題への対処
一般的に提案されている解決策の 1 つは、相対パスを「/css/」などの絶対パスに変更することです。と「/js/」。ただし、この方法では複数のファイルを手動で編集する必要があり、信頼できる解決策とは見なされません。
.htaccess ルールを使用した代替解決策
相対パスを維持しながらこの問題に対処するには場合は、次の解決策を検討してください:
.htaccess ファイルに次の行を挿入します。 RewriteRule ステートメントの前:
RewriteBase /
これにより、リダイレクト後もベース URI が「/」のままになり、相対パスの問題が解決されます。
例:
上記の変更により、.htaccess ファイルは次のように表示されます。
Options +FollowSymLinks RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteRule ^detail/([0-9]+)/?$ detail.php?id=
注: RewriteRule ステートメントの前に必ず「RewriteBase /」行を配置してください。
以上がURL 書き換え後の CSS、JS、画像読み込みの問題を防ぐ方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。