Wordpress mod_rewrite
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
all
aufruf
code
effekt
folgender url
funktionieren
funktioniert http
grad
http
index
inhalt
liegen
original url
problem
server
sorgen
test
url
versuch
zeile
-
Hallo zusammen. :)
Ich benutze Wordpress mit diesem Theme http://rootstheme.com/.
Nur gibt es da ein Problem.
Extremely clean URLs for basically everything, even with WordPress
/wp-content/themes/roots/css/ rewrites to /css/
/wp-content/themes/roots/img/ rewrites to /img/
/wp-content/themes/roots/js/ rewrites to /js/
Pretty much all WordPress generated URLs are root relative so your source isn’t filled with http://www.yoursite.com/ all over the place
Deshalb ist es so, das anstatt domain.tld/wp-content/themes/roots/css/bootstrap.css es so aufgerufen wird: domain.tld/css/bootstrap.css
Nun soll sie das per .htaccess regeln lassen ohne das ich die Links im Template anpassen muss. Doch wie mache ich das?
Momentan sieht die .htaccess so aus:
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase /mc/ RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /mc/index.php [L] </IfModule> # END WordPress
Grüsse, weissertiger2 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Versuch es so:
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase /mc/ RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /mc/index.php [L] RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /wp-content/themes/roots/$1 [L] </IfModule> # END WordPress
-
Schon mal danke für die Antwort. Ich hab die htaccess mal 1:1 wie du sie gepostet hast ersetzt. Scheint aber nicht zu funktionieren.
Beitrag zuletzt geändert: 5.7.2012 21:10:14 von weissertiger2 -
weissertiger2 schrieb:
Ja schon klar...
Scheint aber nicht zu funktionieren.
Versuch es so nocheinmal...# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^mc/index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^mc/ /mc/index.php [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /wp-content/themes/roots/$1 [L] </IfModule> # END WordPress
Ich kann das grad nicht wirklich testen... könnte also wieder einen Fehler haben. -
weissertiger2 schrieb:
Kommt ein "500 Internal Server Error" oder wirst du einfach nicht weitergeleitet?
Funktioniert auch nicht.
Ich hab es jetzt grad lokal getestet und komischerweise hat es da funktioniert?
weissertiger2 schrieb:
Ja, aber nur in Verbindung mit den beiden Zeilen darüber sowie der RewriteBase
Ich verstehe aber auch nicht wie das Funktioniert. Ich nehme aber mal an, das diese Zeile für den gewünschten Effekt sorgen sollte?
RewriteRule ^(.*)$ /wp-content/themes/roots/$1 [L]
-
hackyourlife schrieb:
Beim Aufruf folgender URL kommt ein 404:
Kommt ein "500 Internal Server Error" oder wirst du einfach nicht weitergeleitet?
http://localhost/mc/css/bootstrap.css
Die Original URL funktioniert:
http://localhost/mc/wp-content/themes/roots/css/bootstrap.css
die htacces befindet sich hier:
http://localhost/mc/.htaccess
hackyourlife schrieb:
Hast du es mit Wordpress und dem Roots Theme getestet? :)
Ich hab es jetzt grad lokal getestet und komischerweise hat es da funktioniert?
Ich selbst teste mit XAMPP. Ich denke mal der unterstützt mod_rewrite.
Zumindest die Permalink-Struktur die Wordpress anbietet funktioniert. Und das wird - denk ich mal - auch mit der gleichen Funktion bewerkstelligt.
Beitrag zuletzt geändert: 6.7.2012 11:05:47 von weissertiger2 -
weissertiger2 schrieb:
Jetzt weiß ich auc warum es bei mir im Test funktioniert hat: ich habe http://localhost/css/bootstrap.css aufgerufen ...
hackyourlife schrieb:
Beim Aufruf folgender URL kommt ein 404:
Kommt ein "500 Internal Server Error" oder wirst du einfach nicht weitergeleitet?
http://localhost/mc/css/bootstrap.css
Die Original URL funktioniert:
http://localhost/mc/wp-content/themes/roots/css/bootstrap.css
Also das soll alles unter /mc liegen? Versuch es so
Allerdings ist es jetzt so, dass wenn eine Seite nicht gefunden wird nicht mehr auf die index.php weigergeleitet wird...# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase /mc/ RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /mc/wp-content/themes/roots/$1 [L] </IfModule> # END WordPress
-
hackyourlife schrieb:
Sorry, das ich vergessen habe das zu erwähnen.
Jetzt weiß ich auc warum es bei mir im Test funktioniert hat: ich habe http://localhost/css/bootstrap.css aufgerufen ...
hackyourlife schrieb:
Ja, momentan schon. Sobald die Seite Live ist wird sie unter einer Subdomain erreichbar sein.
Also das soll alles unter /mc liegen?
Ich weiss nicht ob es da eine gemeinsame Lösung gibt, oder ob ich dann wieder eine andere htaccess brauche?
hackyourlife schrieb:
Jetzt wir mir das Theme korrekt dargestellt. Mit CSS und alles. Scheint auf den ersten Blick zu funktionieren.
Versuch es so# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase /mc/ RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /mc/wp-content/themes/roots/$1 [L] </IfModule> # END WordPress
Doch nun gibt es dass Problem, das ich keine Wordpress Seiten oder Artikel mehr aufrufen kann.
Es erscheint dann einen Internal Server Error.
Vielleicht wäre es doch besser die Links im Theme anzupassen. Hhm, mal schauen welchen Aufwand das geben würde.
Ich frage mich was diese hier zbs. in der htaccess stehen haben: http://www.minecraftpvp.com/hunger-games/
Ich bin ja nicht der einzige der das Theme benutzt. Und soviel ich das verstanden habe sollte das Theme die htaccess selbst anpassen. -
Also den "Internal Server Error" bekommst du dann, wenn eine "Endlosschleifenweiterleitung" entsteht die niemals auf eine existierende Datei zeigt...
-
Uf, du glaubst es nicht. Ein wunder ist geschehen :).
Eigentlich wäre es ja so das dieses Theme die htaccess automatisch anpasst. Dies hat aber zu erst nie richtig funktioniert bzw. die htaccess hat sie nicht verändert.
Also habe ich mehrmals die htaccess gelöscht und so automatisch neu erstellen lassen. Hat auch nie funktioniert.
Was aber Funktioniert hat ist folgendes:
Ich habe den Inhalt der htaccess gelöscht. Nicht die ganze Datei! Nun wurde sie automatisch neu generiert und ergänzt. Kling seltsam, hat so aber funktioniert. :)
Der Inhalt sieht nun übrigens so aus falls es dich interessiert:
http://paste42.de/3908/
Vielen dank aber für deine Mühe
PS: Konnte den Code nicht direkt hier bei Lima-City posten da folgendes erschien:
Dieser "Text" kann doch nun wirklich nicht als neuer Beitrag durchgehen, oder? Bitte kürze auf das Wesentliche, kopiere keine fremden Texte!
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage