2 Stimmen

Stil wird bei Verwendung von htaccess nicht angewendet

Ich möchte die URL basierend auf dem ausgewählten Land zeigen, also habe ich htaccess verwendet, um die URL basierend auf dem ausgewählten Land umzuleiten. zum Beispiel möchte ich, dass die URL wie folgt aussieht: www.example.com/us/index.html

Ich habe meine Dateien wie folgt,

public_html/includes/style.css  
public_html/index.php  

in index.php habe ich die Formatvorlage verlinkt wie " ../includes/style.css "

als ich versuchte www.example.com Sobald der Benutzer das Land in index.php ausgewählt hat, wird die URL wie folgt umgeleitet www.example.com/us/index.html . Aber für diese umgeleitete Seite wurde der Stil nicht korrekt angewendet.

Ich habe folgende Bedingung in .htaccess, um die Seite umzuleiten,

RewriteRule ^([^/]+)/([^\.]+)\.html$ index.php?cnt=$1 [L]  

Merci.

2voto

sfk Punkte 709

Wenn Sie www.example.com/us/index.html besuchen, lautet die mit style.css berechnete URL www.example.com/us/includes/style.css, die offensichtlich nicht existiert.

Je nachdem, was Sie beabsichtigen, sollten Sie also entweder

  • einen absoluten Link für das Stylesheet wie "/includes/style.css" verwenden
  • eine htaccess-Umschreibungsregel erstellen, um die URL zu korrigieren
  • 1 Formatvorlage pro Land erstellen

1voto

JohnP Punkte 48581

Wenn Sie Ihre CSS-Dateien mit relativen Pfaden einbinden, wird Ihr CSS eine 404 zurückgeben, wenn sich Ihre URL über das ursprüngliche Home-Verzeichnis hinaus bewegt (oder sich scheinbar hinausbewegt, wenn Sie .htaccess verwenden)

Die Lösung für dieses Problem ist die Verwendung eines absoluten Pfades, wenn Sie Ihr CSS einbinden

anstelle von ../includes/style.css

Utilice <?php echo $webroot; ?>/includes/style.css

$webroot hier ist der vollständige Pfad zum Webroot Ihres Projekts

1voto

Your Common Sense Punkte 154708

Sollte es sein /includes/style.css und nicht ../includes/style.css, das ist alles.
immer den absoluten Pfad verwenden.

1voto

vkGunasekaran Punkte 6478

Vielen Dank für Ihre Hilfe. Dies ist der Code, den ich verwendet, um das Problem zu lösen:

$base = $_SERVER['REQUEST_URI'];  
$base=parse_url($base);  
$parts=explode("/",$base['path']);  
$path=$parts[1];  
$home="/".$path;  

<link rel='stylesheet' type='text/css' href='$home/includes/style.css'/>

Allerdings funktionierte es bei mir nur, wenn ich es auf localhost ausführe, weil ich meine Dateien unter home/localhost/example/
Aber wenn ich es auf dem Server, wieder ich konfrontiert den Stil Problem. so habe ich einfach die Home-Variable wie folgt geändert:

$home="";

So wird der Weg jetzt,

/includes/style.css 

anstelle von

//includes/style.css

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X