htaccess помогите написать

[Удален]
737

поменял двиг на форуме, сменились урлы, теперь надо сделать 301 редиректы со старых урлов на новые, помогите написать правила для htaccess

старые урлы вида http://www.site.ru/forum/viewthread.php?forum_id=8&thread_id=2774

новые урлы вида http://www.site.ru/forum/t2774-nazvanie-temi-translitom.html

Himiko
На сайте с 28.08.2008
Offline
560
#1

И в чём проблема?

Redirect 301 старый новый

Профессиональное администрирование серверов (https://systemintegra.ru). Круглосуточно. Отзывы (/ru/forum/834230) Лицензии (http://clck.ru/Qhf5) ISPManager,VDSManager,Billmanager e.t.c. по низким ценам.
Cthulchu
На сайте с 09.09.2011
Offline
50
#2
Zizizi:
поменял двиг на форуме, сменились урлы, теперь надо сделать 301 редиректы со старых урлов на новые, помогите написать правила для htaccess

старые урлы вида http://www.site.ru/forum/viewthread.php?forum_id=8&thread_id=2774
новые урлы вида http://www.site.ru/forum/t2774-nazvanie-temi-translitom.html

тоже недавно стояла такая задача... мы с колегами даже прикинули скрипт, который бы парсил базу булки и дописывал редиректы... но, думаю, есть какая-то тулза или хак для булки. На сколько я вижу по ссылкам, форум на булке, как раз и стоит. это замечательно. попробуй спросить на vbsupport.org, там помогут, если грамотно спросишь помощи по переделыванию линков в ЧПУ.

Himiko:
И в чём проблема?
Redirect 301 старый новый

а, ну да, если вопрос состоял именно в синтаксисе редиректа, то сорри...

я смею всё, что смеет человек. кто смеет больше, тот не человек.
[Удален]
#3
Himiko:
И в чём проблема?
Redirect 301 старый новый

мне тогда придется 100 000 урлов вписывать, а я хотел общее правило написать если конечно можно такое написать

Zizizi добавил 05.12.2011 в 11:08

Cthulchu, нет это не булка, это пшпфьюжн

Cthulchu
На сайте с 09.09.2011
Offline
50
#4
Zizizi:
мне тогда придется 100 000 урлов вписывать, а я хотел общее правило написать если конечно можно такое написать

Zizizi добавил 05.12.2011 в 11:08
Cthulchu, нет это не булка, это пшпфьюжн

общее правило точно написать нельзя, ибо хтаксесс не знает, что такое БД. нужно писать скрипт ручками. пхпфьюжн не юзал даже, просто встречал подобный хак для булки, - точно так же работал.

vasvas
На сайте с 30.08.2007
Offline
100
#5

Если урлов много, на мой взгляд проще сделать небольшой фикс в коде, который будет проверять текущий урл на то, старый он или новый, и в случае старого урла редиректить на новый.

Himiko
На сайте с 28.08.2008
Offline
560
#6
Zizizi:
мне тогда придется 100 000 урлов вписывать, а я хотел общее правило написать если конечно можно такое написать

Каким вы представляете общее правило?

Как web-сервер должен понимать, что нужно с такой-то странице перекидывать на такую-то?

Вы сначала продумайте алгоритм.

Вот вам дали ссылку старую. Как вы будете определять, куда её перенаправлять? Расскажите мне это и я вам помогу с правилом.

kdv12
На сайте с 05.12.2011
Offline
52
#7
Zizizi:
поменял двиг на форуме, сменились урлы, теперь надо сделать 301 редиректы со старых урлов на новые, помогите написать правила для htaccess

старые урлы вида http://www.site.ru/forum/viewthread.php?forum_id=8&thread_id=2774
новые урлы вида http://www.site.ru/forum/t2774-nazvanie-temi-translitom.html

В данной вопросе я вижу только одну проблему, а именно то что в новых урлах добавляется название темы на транслите. Как вариант создай отдельную таблицу в БД со следующими полями ID, NAME (в это поле помести название темы на транслите). В нее добавь скриптом все старые топики. На ID повесь индекс. А потом в .htaccess добавь правило


RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^forum/viewthread\.php\?forum\_id=[0-9]{1,}&thread\_id=[0-9]{1,} /redir.php?FORUM_ID=$1&%TOPIC_ID=$2 [L]

При заходе по старому урлу загружается скрипт redir.php с параметрами FORUM_ID и TOPIC_ID. В этом скрипте подключаешься к БД, ищешь в той таблице строку с ID=TOPIC_ID и найдя получаешь значение NAME. Ну а дальше просто формируешь новый урл и перекидываешь туда посетителя. Главное не забыть отдать 301 ответ в заголовке.

Разработка сайтов любой сложности на 1С-Битрикс. Бесплатные консультации.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий