質問

私は次のシステムを持っています:

Windows Server '03
IIS 6(私を撃つ)
PHP 5.2.14
WordPress 3.0.1
WPML 1.8.1.2

既存の高トラフィックサイトにWordPressを追加しました。

http:// thehost/wordpress/

mod_rewriteのような機能については、HeliconのISAPI_REWRITE 3.1.0.76を使用しています。 WordPressインストールで「きれいな」パーマリンクを有効にするために使用しています。単一のルールはこれです:

rewriterule ^/wordpress/(?!index.php)(?!wp)([ ^。]*)$ /wordpress/index.php/$1 [i、l

しかし、私は別のルールを追加する必要がありますが、それを考えてそれをバッシングするという私の二重の戦略のどちらも、果物を生み出しました。

私のサイトは完全にバイリンガルです。次の2つのサブディレクトリのいずれかにないページはありません。

http:// thehost/en/ 英語のために、そして

http:// thehost/sp/ スペイン語のために。

これは、WordPressインストールであっても、私が維持することを目指しているコンベンションです。現在、WPML(WordPress多言語プラグイン)のややハッキングされたバージョンが動作しています。これは、言語に関係なくすべてのページと投稿がURLの / en /または / sp /を含むように機能します。これにより、私は痛みを伴うほど近くにいると信じさせられました。おそらく1つの書き直しだけです! - 私のWordPress URLを私のサイトの他の部分と同じURL慣習に適合させることになりました。私の問題は、説明されているように、私はそれをうまく機能させることができないということです。

したがって、WordPressインストールのどこかにこのURLがある場合:

http:// thehost/wordpress/en/2010/08/omg-this-post-is-in-english/

どうすれば変換できますか

http:// thehost/en/wordpress/2010/08/omg-this-post-is-in-english/

その間 WordPressのパーマリンクを失っていませんか? / en /を正しい場所に交換することができました(^/en/wordpress /(.*)/wordpress/en/$ 1)、しかし、私は2つのルールをうまく一緒にプレイすることはできません。それが私の問題です。まあ、それとstackoverflow.comに適していない他のいくつか。

御時間ありがとうございます。

役に立ちましたか?

解決

「C」フラグでルールをチェーンしてみてください。例:

RewriteRule ^/en/wordpress/(.*) /wordpress/en/$1 [C]
RewriteRule ^/wordpress/(?!index.php)(?!wp)([^.]*)$ /wordpress/index.php/$1 [I,L]
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top