2009-08-13 15 views
0

Ich habe Probleme mit. Htaccess Rewrite-Regeln. Angenommen, ich habe diese URL.htaccess Rewrite-Regel nicht laden Website Inhalt

localhost/site/index.php 

und ich möchte es als diese URL neu zu schreiben

localhost/site/tutorial 

Ich würde dieses RewriteRule verwenden

Options +FollowSymLinks 
RewriteEngine on 

RewriteRule ^tutorial/(.*)$ /up/index.php 

Die Seite funktioniert, aber die CSS-Dateien werden nicht geladen.

Auch, wenn ich eine URL wie diese:

index.php?page=home 

Dann würde ich habe durch diese URL zu analysieren ‚zu Hause‘ bekommen nicht _GET $ mit mehr richtig ??

+2

Für die Aufzeichnung ist die Grammatik nicht aus der Mode. –

+0

Wo ist Ihre CSS-Datei? Warum erwartest du, dass es mit so einer "RewriteRule" funktioniert? – SilentGhost

Antwort

0
Options +FollowSymLinks 
RewriteEngine on 

RewriteRule ^tutorial/(.*)$ /up/index.php 

Dies wird alles neu zu schreiben, die als /up/index.php zum Tutorial-Verzeichnis geht, was bedeutet, dass, wenn Sie an dieser Stelle Ihre CSS-Datei hosten, wird es nicht funktionieren. Wenn Ihre CSS-Datei an /tutorial/css.css ist, wird es umleiten zu /up/index.php

Sie müssen durch das% querystring%, um analysieren würden zu umleiten basierend auf index.php?page=home

0

So werden die CSS-Dateien werden nicht geladen, weil Sie ändern Der Speicherort der bereitgestellten Datei.

Also, wenn Sie ./css/style.css verknüpfen => ^/tutorial/css/style.css ist nicht das gleiche wie /up/css/style.css

Und Sie können die behalten Get, wenn Sie umschreiben:

RewriteRule ^tutorial/(.*)?(.*)$ /up/index.php?$2 
1

Verwenden Sie absolute URLs für Ihre CSS-Datei, oder verweisen Sie zumindest von Domain-Root.

http://www.mysite.com/css/myCssFile.css 

oder

/css/myCssFile.css