У меня есть отличная (до сих пор) установка wordpress для нового веб-сайта. Симпатичные URL-адреса работают так, как ожидалось.
У меня есть одна динамическая страница, которая загружает контент в зависимости от запроса:
/dynamic/?loc=england&code=uk
Я хочу сделать этот URL «симпатичным», но каждый раз я изменяю .htaccess, никаких изменений не сделано. Пробовал все и искал все остальное – последнее средство. Если бы я мог заставить работать, тогда я был бы счастлив.
Мне нужно сделать URL-адрес похожим.
/dynamic/location/england/code/uk/
Добавление этого в любой .htaccess прерывает весь сайт.
RewriteRule /dynamic/(.*)/(.*)/(.*)/(.*)/$ /dynamic?$1=$2&$3=$4
Что мне не хватает.
заранее спасибо
N
Не добавляйте правило перезаписи в файл .htaccess
. WordPress управляет этим файлом для вас, поэтому старайтесь использовать встроенные функции, когда можете.
У WordPress действительно есть несколько продвинутый механизм перезаписи, который поставляется с стандартным – и он подключается, как и вся платформа.
Трюк, однако, работает с ним. Вам нужно будет зарегистрировать свой RegEx, чтобы WordPress знал, какие строки должны соответствовать (например, dynamic/location/(.*)/code/(.*)
=> /dynamic?$loc=$1&code=$2
). Затем вам нужно будет настроить страницу и скрипт на задней панели для обработки представления.
Для аналогичного примера рассмотрим ответ, который я получил, на разбор пользовательских URL-адресов с настраиваемым типом сообщения в WordPress Answers . Расширяя это, вам необходимо настроить код, похожий на следующий ( примечание: untested !!!):
<?php add_action('init', 'add_my_rewrite'); function add_my_rewrite() { global $wp_rewrite; $wp_rewrite->add_rule('location/([^/]+)/code/([^/]+)','index.php?loc=$matches[1]&code=$matches[2]','top'); $wp_rewrite->flush_rules(false); // This should really be done in a plugin activation }
Это должно автоматически добавить структуру перезаписи в ваш файл .htaccess
.