Нужно сделать один перепирайк хорошо играть с другим, смущенно слабым пониманием принципов Mod_rewrite, стоящих в пути
-
01-10-2019 - |
Вопрос
У меня есть следующая система:
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's isapi_rewrite 3.1.0.76. Я использую его, чтобы включить «красивые» постоянные ссылки в установке WordPress. Единое правило это:
Переписать ^ / WordPress / (?! Index.php) (?! WP) ([^.] *) $ /Wordpress/index.php/$1 [i, l
Однако мне нужно добавить еще одно правило, и ни одно из моих двойных стратегий мышления его сквозь и не поручив его, не одержал плоды.
Мой сайт полностью двуязычный. Нет никаких страниц, которые не под одной из двух следующих подкаталогов:
http: // thehost / en / ru / для английского и
http: // thehost / sp / для испанского.
Это конвенция, которую я стремлюсь, чтобы поддерживать даже для установки WordPress. В настоящее время у меня есть несколько взломанная версия WPML (многоязычный плагин WordPress MultiLyual), и она работает так, чтобы все страницы и сообщения - независимо от языка - включают либо / ru / или the / sp / ruL. Это привело меня к веществу, что я болен близко - возможно, только один переписал! Моя проблема, хотя, как описано, состоит в том, что я не могу получить его на работу.
Итак, если у меня есть этот URL-адрес где-то в моем WordPress, установите:
http: // thehost / wordpress / en / 2010/08 / omg-this-post-is-inshiance /
Как я могу преобразовать его в
http: // thehost / en / wordpress / 2010/08 / OMG-This-Post-Is-In-english /
пока Не теряя постоянные ссылки WordPress? Мне удалось поменять / ru / в правильное местоположение (^ / en / wordPress /(.*) / WordPress / EN / $ 1), но я не могу получить два правила, чтобы хорошо играть вместе. Это моя проблема. Ну, это и несколько других не подходит для StackoverFlow.com.
Спасибо за ваше время.
Решение
Попробуйте церовать правила с флагом «C». Пример:
RewriteRule ^/en/wordpress/(.*) /wordpress/en/$1 [C]
RewriteRule ^/wordpress/(?!index.php)(?!wp)([^.]*)$ /wordpress/index.php/$1 [I,L]