@mrDevel

Как переставить части URL. CMS Wordpress?

День добрый.
Есть ссылка вида site/about или site/en/about. Установленный плагин позволяет описать страницы для site/de/about, site/pl/about и т.д. Открывает соответствующие страницы на соответствующих языках. Но клиенту не нравится такой вид. Требуется сделать что-то следующего вида:
site/about - для русского языка
site/about/de - немецкий
site/about/pl - польский и т.д.
При этом "about" может быть разным для каждой страницы "o-firme" и т.д.

Пытался копать в сторону htaccess. Но лучшее, что получилось - сделать Redirect на страницу с переставленной частью URL

Уже что я не пробовал:

#Redirect 301 /about-en/en site/en/about-en
#Redirect 301 /about-en/en /en/about-en/

# BEGIN WordPress

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

# END WordPress

#RewriteCond %{QUERY_STRING} !(.*)/([^/]*)/(en|ru|de|fr|ua|pl)$
#RewriteRule ^([^/]*)/{1,2}([^/]*)$ $2/$1 [L]

Сервер или уходит в 500 или выдает 404 или делает редирект на страницу с перевернутой ссылкой.
Но мне не нужен редирект. Мне нужен только контент по данной ссылке, а ссылка в URL должна оставаться неизменной. Не пойму, в каком направлении копать. Все мануалы по mod_rewrite уже прочитаны. Но максимум, не подмена, а редирект.
Подскажите, куда копать?
  • Вопрос задан
  • 103 просмотра
Решения вопроса 1
@mrDevel Автор вопроса
Редирект не желателен. Клиент хочет, чтоб ссылка не менялась. Т.е. язык всегда должен быть в конце.
Понятно, что редиректы до ядра. Но редиректа не хочется. Хочется, чтоб апачей отдал соответствующую запись, по его рабочей ссылке.

==============================

Решил следующим образом.
Добавил тег и правила обработки для Wordpress

add_rewrite_tag( '%lang%', '([^&]+)' );

$lang = "ru";

add_rewrite_rule( '^main\/?$', 'index.php?page_id=107〈='.$lang,'top' );
add_rewrite_rule( '^main\/(en|ru|de|pl|ua|fr)/?$', 'index.php?page_id=107〈=$matches[1]','top' );
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
azerphoenix
@azerphoenix
Java Software Engineer
Я знаю, что в плагине WPML есть возможность выбирать 3 типа ссылок:
1) en.site.com/about ru.site.com/about и т.д.
2) site.com/en/about site.com/ru/about
3) site.com/about?lang=en site.com/about?lang=ru
Может один из 3-х вариантов устроит? Кажется такая же возможность есть в QTranslate-X & WPGlobus
Ответ написан
а кто мешает сделать редирект с 200 ок ?
Так же не забывай что все эти редиректы должны быть до ядра
.htaccess читается циклом до полного установления ссылок.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы