У меня есть следующая система:
Windows Server '03
IIS 6 (пристрелите меня)
PHP 5.2.14
Wordpress 3.0.1
WPML 1.8.1.2
Я добавил Wordpress на существующий сайт с большим трафиком, в каталог, который мы назовем
http://thehost/wordpress/
Для функций, подобных mod_rewrite, я использую ISAPI_Rewrite 3.1.0.76 от Helicon. Я использую его для включения «симпатичных» постоянных ссылок в установке Wordpress. Единственное правило таково:
RewriteRule ^ / wordpress / (?! index.php) (?! wp) ([^.] *) $ /Wordpress/index.php/$1 [I, L]
Однако мне нужно добавить еще одно правило, и ни одна из моих двойственных стратегий продумывания и избиения не принесла плодов.
Мой сайт полностью двуязычный. Нет страниц, которые не входят ни в один из следующих подкаталогов:
http://thehost/en/ для английского языка и
http://thehost/sp/ для испанского.
Это соглашение, которое я собираюсь поддерживать, даже для установки Wordpress. В настоящее время у меня работает несколько взломанная версия WPML (многоязычный плагин Wordpress), и она работает таким образом, что все страницы и сообщения, независимо от языка, включают в себя URL / en / или / sp / в URL. Это заставило меня поверить, что я очень близок - возможно, только один RewriteRule! - чтобы мои URL-адреса Wordpress соответствовали тому же соглашению URL, что и остальная часть моего сайта. Однако, как я уже описал, моя проблема в том, что я не могу заставить его работать.
Итак, если у меня есть этот URL где-то в моей установке Wordpress:
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 ), но я не могу заставить играть два правила приятно вместе. Это моя проблема. Ну, это и некоторые другие не подходят для stackoverflow.com.
Спасибо за ваше время.