verhmax
23.11.2014 - 23:23
Добрый день форумчане.
У меня на сейте есть самописный ЧПУ, он выводится по всему сайту страницы такого вида: 1234-tovar-chtoto.html. Обрабатывается это с помощью .htaccess
RewriteRule ^(.*)\.html$ index.php?id=$1 [L,QSA]
Основное значение в этом урле - это ID страницы, но при запросе 1234.html (короткий урл товара) также получаем нужную нам страницу.
В связи с этим в индекс как-то вылезли страницы не 1234-tovar-chtoto.html, а 1234.html (несколько)
Вопрос: подскажите как в .htaccess сделать чтоб при запросе страницы вида 1234.html мы получали редиректом нужную нам 1234-tovar-chtoto.html ?
Заранее благодарю
asdf27
24.11.2014 - 00:29
Не так. Тот код преобразует урл вида index.php?id=номер в номер.html
.htaccess откуда возьмет название статьи? Тут сперва название переводится в транслит скриптом php, потом записывается в базу. При обращении скрипт ищет id статьи и выводит вида типа site.ru/$row[title].
Только собирался поднять тему, но видимо могу задать вопрос в этой же теме.
Планирую переезжать на ЧПУ. То, что урл засовывается в массив и дальше разбирается, что надо показать, я понимаю, но всё же есть вопрос:
1. В .htaccess я прописываю правило перенаправлять все запросы в index.php, откуда рулю урлом.
2. Со старых урлов вида GET-переменных делаю 301 редирект?
3. Если ссылка была place.php?place_id=3, а стала /lazarevskoe/ , как быть с меню? Если я там пропишу <a href="lazarevskoe/"></a>, то GET-переменные уйдут, верно?
4. Или скрипт должен определять, сейчас ЧПУ урл или нет? Если ЧПУ, то найти с этим заголовком, а если нет, то перенаправить по ЧПУ-адресу?