2016-06-05 14 views
1

Ich habe ein kleines Problem mit dem Umschreiben von URLs. Ich habe diese wirklich einfache Rewrite-Regel:URL-Umschreiben mit .htaccess und relativen Pfaden

RewriteEngine on 
RewriteRule ^(home|apps|news|research|contribute)/$ index.php?page=$1 

Allerdings, wenn ich meine Website so, z. website.net/home/ schreibt die Regel korrekt und zeigt die entsprechende Seite an, aber auch die css und die Bilder, da sie die URLs für sie neu schreibt, da sie relative Pfade im Code sind. Gibt es einen einfachen Weg, dies zu verhindern?

+0

Was ist die URL, die Sie neu zu schreiben sind versuchen? Es ist einfacher zu verstehen, was Sie auf diese Weise erreichen möchten. – Lag

+0

Ich habe 5 mal gelesen und verstehe nicht, was dein Problem eigentlich ist. Gib ein Beispiel. –

+0

Das Problem ist, dass es tatsächlich auch die URL für die Links zu den Stylesheets und Bildern neu schreibt, die sie nicht laden –

Antwort

1

Dies wegen des neu geschrieben Urls ist. Wenn die URL ist example.com/home/ Apache denkt /home/ ist ein Verzeichnis und hängt /home/ vor allen relativen URLs.

Um dies zu lösen, können Sie den folgenden Basis-Tag in Kopfteil Ihrer Webseite hinzufügen:

<base href="/"> 

Verwandte: Seo Friendly Url css img js not working

+0

Danke, das scheint die perfekte Lösung zu sein, wenn es funktioniert. Ich werde es so schnell wie möglich ausprobieren. –

+1

Funktioniert wie ein Zauber, vielen Dank dafür! –

1

Fügen Sie diese folgende Zeile in der Datei .htaccess

RewriteRule \.(gif|jpg|css|js|inc\.php)$ -[L] 
+0

das scheint nicht zu funktionieren, obwohl es mir klar machte, dass es eine Möglichkeit geben könnte, bestimmte Dateien über eine Bedingung auszuschließen? –

+0

Entweder sollten Sie absolute Pfade für Ihre Dateien verwenden oder Sie können Ausnahmen für bestimmte Dateitypen machen. –

Verwandte Themen