Heim >Backend-Entwicklung >PHP-Tutorial >Wie verhindere ich Probleme beim Laden von CSS, JS und Bildern nach dem Umschreiben der URL?

Wie verhindere ich Probleme beim Laden von CSS, JS und Bildern nach dem Umschreiben der URL?

Linda Hamilton
Linda HamiltonOriginal
2024-12-02 19:09:15161Durchsuche

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

URL-Rewriting: Beheben von Ladeproblemen für CSS, JS und Bilder

Beim URL-Rewriting kommt es häufig zu Szenarios, in denen CSS, JS , und Bilddateien werden nach der Umleitung nicht mehr geladen. Dieses Problem tritt normalerweise auf, wenn relative Pfade verwendet werden und die Umleitungsregel die Basis-URL ändert.

Betrachten Sie zur Veranschaulichung die folgende Konfiguration:

Options +FollowSymLinks

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} -f [OR]

RewriteRule ^detail/([0-9]+)/?$ detail.php?id=

In diesem Fall leitet die Regel URLs wie folgt um „http://localhost/detail/123“ zu „http://localhost/detail.php?id=123“. Während die Umleitung erfolgreich erfolgt, können CSS-, JS- und Bilddateien in „http://localhost/css/“ und „http://localhost/js/“ nicht geladen werden, da die relativen Pfade nicht mehr gültig sind.

Lösung des Problems

Eine häufig vorgeschlagene Lösung besteht darin, die relativen Pfade in absolute Pfade zu ändern, z. B. „/css/“ und „/js/“. Dieser Ansatz erfordert jedoch manuelle Bearbeitungen an mehreren Dateien und gilt nicht als zuverlässige Lösung.

Alternative Lösung mit .htaccess-Regeln

Um dieses Problem zu beheben und gleichzeitig relative Pfade beizubehalten , ziehen Sie die folgende Lösung in Betracht:

Fügen Sie die folgende Zeile in Ihre .htaccess-Datei ein vor der RewriteRule-Anweisung:

RewriteBase /

Dadurch wird sichergestellt, dass der Basis-URI auch nach der Umleitung „/“ bleibt, wodurch das Problem mit relativen Pfaden behoben wird.

Beispiel:

Mit der obigen Änderung erscheint die .htaccess-Datei jetzt als folgt:

Options +FollowSymLinks

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} -f [OR]

RewriteRule ^detail/([0-9]+)/?$ detail.php?id=

Hinweis: Denken Sie daran, die Zeile „RewriteBase /“ vor allen RewriteRule-Anweisungen zu platzieren.

Das obige ist der detaillierte Inhalt vonWie verhindere ich Probleme beim Laden von CSS, JS und Bildern nach dem Umschreiben der URL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn