URL-Umschreibung: Fehler beim Laden von CSS, JS und Bildern beheben
Beim Implementieren von URL-Umschreibungsregeln in .htaccess tritt ein häufiges Problem auf wo externe Assets wie CSS, JS und Bilder nicht richtig geladen werden. Dies kann auf die Änderung der URI-Basis bei der Umleitung zurückgeführt werden.
Eine erste Lösung besteht in der Verwendung absoluter Pfade, die sicherstellen, dass die Assets unabhängig von der URL der Seite gefunden werden. Dies erfordert jedoch langwierige Änderungen an allen Dateien, was es zu einer unzuverlässigen Lösung macht.
Ein alternativer Ansatz nutzt .htaccess-Regeln, um einen konsistenten Basis-URI einzurichten:
RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteRule ^detail/([0-9]+)/?$ detail.php?id= RewriteEngine On RewriteCond %{REQUEST_URI} !^/css/ RewriteCond %{REQUEST_URI} !^/js/ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /detail/123/ [R=307,L]
Diese Regel stellt sicher, dass alle Auf externe Assets wird über die URL /detail/123/ verwiesen. Das Flag [R=307,L] leitet die Anfrage an den richtigen Basis-URI (/detail/123/) um und löst so effektiv das Problem beim Laden von Assets, ohne dass absolute Pfade erforderlich sind.
In Verbindung damit können Sie hinzufügen eine
<base href="/detail/123/">
Dies festigt den Basis-URI weiter und ermöglicht die korrekte Funktion relativer Pfade. Durch die Implementierung dieser Regeln können Sie das Umschreiben von URLs beibehalten und gleichzeitig die Notwendigkeit vermeiden, einzelne Dateien zu bearbeiten, wodurch ein nahtloses Benutzererlebnis gewährleistet wird.
Das obige ist der detaillierte Inhalt vonWie behebe ich Probleme beim Laden von CSS, JS und Bildern nach der Implementierung des URL-Rewritings?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!