Bir RewriteRule şekilde, başka bir ile güzel mod_rewrite ayakta ilkeleri utandıracak zayıf anlayış oynamak yapmak gerekir

0 Cevap php

Aşağıdaki sistemi:

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

Ben arayacağım bir dizinde, varolan yüksek trafik site Wordpress ekledik

http://thehost/wordpress/

Mod_rewrite gibi özellikler için, ben Helicon adlı ISAPI_Rewrite 3.1.0.76 kullanıyorum. Ben Wordpress "sevimli" kalıcı yüklemek etkinleştirmek için kullanıyorum. Tek kural şudur:

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

Ancak, başka bir kural eklemek gerekir, ve üzerinden düşünme ve aracılığıyla dayak benim ikili stratejilerinin ne meyvasını gelmiştir.

Sitem tam iki dilli biridir. Aşağıdaki iki dizinlerinin biri altında olmayan sayfa yok:

http://thehost/en/ İngilizce ve

http://thehost/sp/ İspanyolca için.

Bu Wordpress yüklemek için bile, ben korumak amacı bir kuralıdır. Şu anda WPML (Wordpress Dilde eklentisi) işletim biraz hacklenmiş sürümü var, ve ne olursa olsun-ileti tüm sayfaları ve ya / tr / veya URL / SP / dil-include böyle çalışır. Bu benim achingly yakın-belki de sadece bir RewriteRule uzakta değilim!-Benim Wordpress URL'ler benim sitenin geri kalanıyla aynı URL kurallarına uyar hale inanmak için bana yol açmıştır. Benim sorunum olsa açıklandığı gibi, oldukça işe alınamıyor olmasıdır.

Yani, bu URL varsa, bir yerde benim Wordpress yükleyin:

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

nasıl bunu dönüştürebilirsiniz

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

while Wordpress en kalıcı bağlantı kaybetme değil? Ben onun doğru konuma (^/en/wordpress/(.*) /wordpress/en/$1) için / tr / takas için idare ettik, ama ben iki kural birlikte güzel oynamak için alınamıyor. Bu benim sorunum. Eh, o ve birkaç diğerleri stackoverflow.com için uygun değil.

Zaman ayırdığınız için teşekkürler.

0 Cevap