Руссие субдомены на wordpress multisite
-
Имеется домен site.net и даже сайт.net
Заказчик хочет иметь субдомен на русском языке site.net/заказчик/ или сайт.net/заказчик/
Как это можно реализовать на вордпрессе? При создании сама субдомена как известно Разрешены только латинские буквы в нижнем регистре (a—z) и цифры.
-
все национальные названия транслируются программами в пуникод, это делает браузер.
вам же в настройках следует использовать имена в пуникодену я не дурак, прежде чем задать вопрос пробовал. А вы?
браузер переводит только домен,
субдомен выглядит site.net/xn—-7sbbvm5bfs1b/субдомен.сайт.рф
в случае кириллического субдомена работать будет только для кириллического же домена 2-го уровняа то что хотите вы, это site.net/папка а не «субдомен»
оно а пуникод не кодируется, а используется utf8
%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D1%87%D0%B8%D0%BA
заказчикопять же зависит от браузера, будет оно выглядеть нормально или с %%
если не хочется иметь таких неудобств лучше делать транслитерацию в латиницу, для ЧПУ, можно автоматически плагином http://wordpress.org/plugins/rustolat/да в том то и дело что заказчику хочется русскими буквами, «патамушта у конкурента была страничка с русскими» Ну объяснить что свой сайт и своя страничка это разное не получается
ладно, с UTF-8 вариант работает
я то понимаю что это дурь>>>а то что хотите вы, это site.net/папка а не «субдомен»
скажем так — без разницы, это не папка и не субдомен. это сайтВ Multisite действительно есть некоторые сложности с добавлением нестандартных адресов, в багтрекере тоже рассматривается этот вопрос: #17397.
Вижу, что ответ уже есть, но вдруг кому-нибудь пригодится более подробное описание.
Предлагаю следующий алгоритм:
- Создайте сайт с любым допустимым адресом (например,
/client/
). - В сообщении «Сайт добавлен» нажмите ссылку «Редактировать» (или найдите сайт на странице «Все сайты» и нажмите ссылку «Изменить»).
- В поле «Путь» введите
/%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D1%87%D0%B8%D0%BA/
— это слово «заказчик», пропущенное через PHP-функциюurlencode()
. Можно воспользоваться сервисом URL Decoder/Encoder. - В файле
.htaccess
найдите эти строки:RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L] ... RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L] RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
Замените их на следующие:
RewriteRule ^(.+?/)?wp-admin$ $1wp-admin/ [R=301,L] ... RewriteRule ^(.+?/)?(wp-(content|admin|includes).*) $2 [L] RewriteRule ^(.+?/)?(.*\.php)$ $2 [L]
После этих действий у меня получился сайт
ms.wordpress/заказчик/
с работающей админкой и постоянными ссылками.у меня в .htaccess что править?
#uploaded files RewriteRule ^(.*/)?files/$ index.php [L] RewriteCond %{REQUEST_URI} !.*wp-content/plugins.* RewriteRule ^(.*/)?files/(.*) wp-includes/ms-files.php?file=$2 [L] # add a trailing slash to /wp-admin RewriteCond %{REQUEST_URI} ^.*/wp-admin$ RewriteRule ^(.+)$ $1/ [R=301,L] RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule . - [L] RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-.*) $2 [L] RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L] RewriteRule . index.php [L]
[_0-9a-zA-Z-]+
заменить на.+?
.RewriteRule ^(.+?./)?(wp-.*) $2 [L] RewriteRule ^(.+?./)?(.*\.php)$ $2 [L]
выдает ошибку 500 на всем домене
с точкой и без .+?надеюсь отсутствие пары строк не смертельно?
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L] RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
что они дают?
разобрался, при ЧПУ не нужен ?
такой вариант работаетRewriteRule ^(.+/)?(wp-.*) $2 [L] RewriteRule ^(.+/)?(.*\.php)$ $2 [L]
спасибо
Если следовать инструкции, которую предоставил Sergey Biryukov, то у меня работает тоже. Проблема с браузером IE10 (похоже, что и в предыдущих версиях также) он не декодирует URL в адресной строке браузера. Выглядит ужасающе 🙂
RewriteRule ^(.+?./)?(wp-.*) $2 [L] RewriteRule ^(.+?./)?(.*\.php)$ $2 [L]
выдает ошибку 500 на всем домене
Вторая точка (после вопросительного знака) — лишняя, в моём фрагменте из четвёртого пункта её нет.
надеюсь отсутствие пары строк не смертельно?
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L] RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
что они дают?
Без них нет доступа к админке дочернего сайта и не загружаются стили темы.
разобрался, при ЧПУ не нужен ?
такой вариант работаетRewriteRule ^(.+/)?(wp-.*) $2 [L] RewriteRule ^(.+/)?(.*\.php)$ $2 [L]
Работает, но без вопросительного знака после плюса у меня не подгружался файл
wp-admin.css
(под маску первой части выражения попадал не только главный подкаталог, а весь путь к файлу, поэтому потребовалось «ленивое» выражение), а постоянные ссылки работали и с вопросительным знаком.Кстати, у вас почему-то
.htaccess
от более старых версий, в WordPress 3.6 правила немного другие.>>>Кстати, у вас почему-то .htaccess от более старых версий, в WordPress 3.6 правила немного другие.
я с первых версий на вопдпресс и баддипресс. Естественно мусор видимо накопился. Раньше ведь ручками обновлялись. Сам решал некоторые проблемы. Собственно мои вопросы здесь так и не решились 🙁
- Создайте сайт с любым допустимым адресом (например,
- Тема «Руссие субдомены на wordpress multisite» закрыта для новых ответов.