Мне необходимо сделать rewrite для ~3000 страниц. (со старого сайта).
А по-нормальному: в хтацессе 301 (+в базе поменять при необходимости) — не?
А по-нормальному: в хтацессе 301
~ 3000 страниц в .htaccess ??
(+в базе поменять при необходимости) — не?
да но в базе есть вот такие url-ы — «/1300/1308.html» как мне его захватить ?
~ 3000 страниц в .htaccess ??
те 3к страниц в функии — это нормально? 🙂
Если что — правила реврайта одинаковы и для хтацесса и для add_rewrite_rule
да но в базе есть вот такие url-ы — «/1300/1308.html» как мне его захватить ?
Регулярками. Только надо ли? Правила ЧПУ поменялись?
Домен поменять не достаточно?
Не надо искать проблем, там где их нет. Скажите какие правила ЧПУ (УРЛы) были, и какие стали на др. домене.
А лучше гуглите как перенести сайт на новый домен и прописать 301
Не надо искать проблем, там где их нет. Скажите какие правила ЧПУ (УРЛы) были, и какие стали на др. домене.
А лучше гуглите как перенести сайт на новый домен и прописать 301
Дык я и сам в курсе что так лучше. но Требоание клиента чтобы 301 небыло.
Уговаривал всякими способами но ни в какую. Знаю, что скажете, надо было клиента послать и не браться за работы но уже 90% работы сделано. остался вот этот редирект.
те 3к страниц в функии — это нормально? 🙂
Если что — правила реврайта одинаковы и для хтацесса и для add_rewrite_rule
Ну какбы я не собираюсь запихивать все реврайты в одну функцию. просто в старой базе все УРЛы хранились в БД вот их я оттуда буду черпать и соответственно подставляться (или не подставлять add_rewrite…)
Требоание клиента чтобы 301 небыло.
Требование вполне справедливое. Решается в хтацессе.
Я-таки настоятельно рекомендую заюзать гугл, что бы узнать как делать правильно и не подставлять клиента с такими финтами.
Требование вполне справедливое. Решается в хтацессе.
Для одного УРЛа — согласен Но для 3тыс урлов ?
Причем которые не подпаают под шаблон!! Наведу пример
/006589
/00751d
/007740
/0077b8
/0092e5
/0147a4
/017bc1
/019445
/01ad33
/01e00e
/01f8ba
/01fd24
.......................
/zvezdocheti_stekautsa_v_brekon
/zolotye-peski
/zolotoi_novi_god_v_birme
/zolotoi_ipad_v_dubae
/zizn_pi_vdohnovlaet_turistov
/zimnii_izrail
/zimnie_prazdniki_pribligautsa
все эти УРЛы хранятся в БД.
Для одного УРЛа — согласен Но для 3тыс урлов ?
Но Вам же их все равно в add_rewrite_rule прописывать! Так какая разница куда писать буковки?
А разница лишь в том, что нагрузка ляжет не на ВП, а на апач. И второй момент — это увидит любой вебмастер, подобравший сайт после Вас и не будет ломать голову откуда такие непонятки.
Хотя конечно, 3к редиректов — це занадто 🙂 ИМХО надо поработать с заказчиком на предмет одного редиректа — на морду, например. Или лучше на спец. страницу с поиском и релевантной (ожидаемой) выдачей.
Кста, вариант без правки темы и хтацесса — плагин. Но хтацесс всё же лучше.
А разница лишь в том, что нагрузка ляжет не на ВП, а на апач. И второй момент — это увидит любой вебмастер, подобравший сайт после Вас и не будет ломать голову откуда такие непонятки.
Наверное я прислушаюсь к этому совету. Но всетаки для себя хочу знать почему
function add_rewrite_rules(){
add_rewrite_rule('^1300/1308.html/$','index.php/?p=20','top');
}
add_action( 'init','add_rewrite_rules' );
вот такой вот код не срабатывает ? а именно если я захожу на страницу 1300/1308.html то мена 301-м редиректом перебрасывает на эту ще страницу но со слешем в конце. А дальше — на главную страницу?
Модератор
Юрій
(@yube)
Требоание клиента чтобы 301 небыло.
Требование вполне справедливое. Решается в хтацессе.
Увы, по-простому не решается. WP увидит «кривой» REQUEST_URI и постарается перенаправить куда сочтет нужным.
Я решал аналогичную задачу повешением обработчика на хук init. В двух словах: ищем в базе соответствие, и если оно есть, делаем фейк URI так, чтобы выводилось то, что нам надо. В моем случае это были страницы со специальными «отметками» о старом адресе. Подробностей не будет — по условиям контракта.
P.S. IMHO «без редиректа» — невежественная блажь 🙂
А можно пример хука. т.к. я пока что вижу только выход через ф-цию php header(….) но это тот же самый редирект
Модератор
Юрій
(@yube)
А можно пример хука.
Эээээ…. Короче, читать тут http://codex.wordpress.org/Plugin_API
Эээээ…. Короче, читать тут http://codex.wordpress.org/Plugin_API
ЭЭЭЭэ дык это то я найду. меня интересует как именно сделать реврайт если add_rewrite_ — не работает (см. пример выше). а php функция header(..) может делать только 301 редирект который в моих условиях неприемлем
Модератор
Юрій
(@yube)
Разве я что-то писал про rewrite? Я использовал другой принцип. Простите, но я не имею права детально расписывать реализованный у клиента алгоритм, а придумывать для Вас такой же, но другой чего-то не хочется.
Увы, по-простому не решается
Я слепой! Я прочитал как «клиент требует 301″.
1099511627776, сорри, был не прав. Клиент, кстати тоже 😉
IMHO «без редиректа» — невежественная блажь 🙂
Абсолютно согласен!