ホームページ >バックエンド開発 >PHPチュートリアル >URL 書き換え後の CSS、JS、画像読み込みの問題を防ぐ方法

URL 書き換え後の CSS、JS、画像読み込みの問題を防ぐ方法

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-02 19:09:15161ブラウズ

How to Prevent CSS, JS, and Image Loading Issues After URL Rewriting?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。