2011-01-11 4 views
0

Hier ist das Szenario, ich habe eine Website, die eine statische HTML-Site und WordPress-Blog mit einer Subdomain (http://blog.domain.com) war..htaccess Rewrite basierend auf Existenz des Pfades in URL

Ich habe vor kurzem alles in einer einzigen WordPress-Installation kombiniert. Um alte Links beizubehalten, musste ich Anfragen wie "http://blog.domain.com/index.php/2010/10/16/post-name" auf "http://domain.com/index.php/2010" umschreiben/10/16/post-name ". Mein Problem ist, dass wenn ich versuche, nur "http://blog.domain.com" zu besuchen, ich zu "http://domain.com" weitergeleitet werde, wenn ich möchte, dass es auf "http://domain.com/ geht". index.php/blog ".

Also, wenn ein Benutzer "http://blog.domain.com" (von selbst, mit oder ohne Schrägstrich) anfordert, möchte ich es auf "http://domain.com/index.php/ Blog ". Wenn sie eine alte URL von "http://blog.domain.com/some-link-to-a-post" anfordern, möchte ich, dass sie auf "http://domain.com/some-link-to- Ein Eintrag". Mit anderen Worten, wenn es sich um eine URL zu einem tatsächlichen Beitrag handelt, möchte ich nur die Unterdomäne "blog" entfernen. Wenn es die alte Verbindung zum Haupt Blog-Seite ist, möchte ich die „Blog“ Sub-Domain entfernen und fügen Sie „/index.php/blog“

http://blog.domain.com/ ->http //domain.com/index.php/blog

http://blog.domain.com/index.php/2010/10/16/post-title ->: http: // domain .com/index.php/2010/10/16/post-titel

Hoffentlich ist das klar. Ich bin kein htaccess Experte, also hoffentlich kann mir hier jemand helfen. Danke im Voraus!

Antwort

0

Mit dem Befehl [L] am Ende eines Neuschreibens wird htaccess mitgeteilt, dass dies die letzte Regel ist, mit der es übereinstimmen sollte. Wenn Sie eine Regel einfügen, die Ihrer ersten Bedingung am oberen Rand entspricht, und die andere Regel, die Sie bereits hinterher erstellt haben, sollten Sie das erwartete Ergebnis erhalten.

Versuchen Sie folgendes:

RewriteRule ^blog.domain.com(/?)$ domain.com/index.php/blog [L] 
# Your other rewrite here # 
0

Ich konnte nicht diese Lösung zu arbeiten. Allerdings habe ich die folgenden:

RewriteCond %{HTTP_HOST} ^blog\.domain\.com$ [NC] 
RewriteRule ^(.*)$ http://domain.com/index.php/blog/$1 [R=301,L] 

, die wie http://domain.com/index.php/blog/index.php/2010/06/04/post-title in einer URL endet, aber Wordpress ist intelligent genug, um es zu beheben.