Need eine RewriteRule spielen gut mit anderen, beschämend schwach Verständnis der Prinzipien von mod_rewrite im Wege stehen zu machen

StackOverflow https://stackoverflow.com/questions/3575797

Frage

Ich habe folgendes System:

Windows Server '03
IIS 6 (shoot me)
PHP 5.2.14
Wordpress 3.0.1
WPML 1.8.1.2

Ich habe Wordpress zu einer bestehenden High-Traffic-Website hinzugefügt, in einem Verzeichnis nennen wir

http: // thehost / Wordpress /

Für mod_rewrite-ähnliche Funktionen, ich bin mit Helicon ISAPI_Rewrite 3.1.0.76. Ich verwende es „ziemlich“ Permalinks in der Wordpress zu ermöglichen, installieren. Die einzige Regel ist dies:

RewriteRule ^ / Wordpress / (?! index.php) (?! wp) ([^.] *) $ /Wordpress/index.php/$1 [I, L]

Ich brauche eine weitere Regel hinzufügen, aber, und keiner von meinen Doppelstrategien es durch das Denken und bashing es durch Obst getragen hat.

ist Meine Seite ein komplett zweisprachig ein. Es sind keine Seiten, die nicht unter eine der beiden folgenden Unterverzeichnisse sind:

http: // thehost / en / für Englisch, und

http:. // thehost / sp / für Spanisch

Dies ist eine Konvention Ich ziele darauf ab zu halten, auch für die Wordpress installieren. Im Moment habe ich eine etwas gehackte Version von WPML (Wordpress Multilingual Plugin) arbeitet, und es funktioniert, so dass alle Seiten und Beiträge-unabhängig von der Sprach umfassen entweder die / en / oder die / sp / in der URL. Das hat mich dazu gebracht, ich bin achingly Nähe vielleicht weg nur eine RewriteRule zu glauben! -Zu macht meinen Wordpress-URLs auf die gleiche URL-Konvention wie der Rest meiner Seite entsprechen. Mein Problem aber, wie beschrieben, ist, dass ich es nicht ganz an die Arbeit bekommen können.

Also, wenn ich diese URL irgendwo in meinem Wordpress installieren:

http: // thehost / Wordpress / de / 2010/08 / omg-this-post-ist-in-Englisch /

Wie kann ich sie transformieren, um

http: // thehost / en / Wordpress / 2010/08 / omg-this-post-ist-in-Englisch /

, während nicht Wordpress die Permalinks zu verlieren? Ich habe es geschafft, die / en / an die richtige Position zu tauschen ( ^ / en / Wordpress /(.*) / Wordpress / en / $ 1 ), aber ich kann die beiden Regeln nicht bekommen spielen gut zusammen. Das ist mein Problem. Nun, das und ein paar andere nicht für stackoverflow.com.

Vielen Dank für Ihre Zeit.

War es hilfreich?

Lösung

Versuchen Sie, die Regeln mit dem „C“ Flag verketten. Beispiel:

RewriteRule ^/en/wordpress/(.*) /wordpress/en/$1 [C]
RewriteRule ^/wordpress/(?!index.php)(?!wp)([^.]*)$ /wordpress/index.php/$1 [I,L]
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top