| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > Как применить mod_rewrite к существующему сайту |
| Автор: kulikoff 11.5.2011, 13:16 | ||||
У меня такая ситуация: есть интернет-магазин, в котором урлы выглядят примерно так:
Стоит задача переделать как-то так, чтоб этот же урлы выглядел, как положено:
Вопрос: как это сделать или где-то можно получить исчерпывающую инфу про мой конкретный случай, а не о моде вобще и в принципе? |
| Автор: bars80080 11.5.2011, 13:38 | ||
| ссылки ты делаешь сам. если магазин, как CMS, генерирует ссылки в автоматическом режиме, то нужно смотреть в настройки магазина, где задать новый шаблон ссылок, либо просто поставить галочку "использовать ЧПУ" mod_rewrite нужен, когда кто-нибудь приходит по ссылке, тут надо распознать /good/5235/43 и отправить по адресу /good.php?good_id=5235&category_id=43 самый простой способ - перекидывать всех прямо в корень:
таким макаром все не найденные пути будут вести на http://www.mysite.com/index.php а в файле index.php уже можно вытащить путь из $_SERVER['REQUEST_URI'], распарсить его и по полученным данным произвести подключение нужного модуля но вообще, задача очень специфическая для движка. в общем плане не решается, и можно запороть весь движок |
| Автор: ksnk 11.5.2011, 15:40 | ||
Все зависит от того, насколько он "правильно" сделан. В правильном магазине все ссылки формируются централизованно. В обычном - как получилось. частное решение, которое может сработать, если более правильные методы неприменимы:
функцию link2chpu следует допилить напильником по месту. Да и варнинги, которые при ее выполнении формируются неплохо бы отработать. |
| Автор: Sanchezzz 11.5.2011, 15:46 | ||||||
вроде так Добавлено @ 15:54 Я пользуюсь методом как сказал bars80080 только у меня это делает 1 файл
файл со структурой modrewrite.php... $Rewrite = array( array('RULE_EX'=> '#^/([a-z0-9\_]+)/([a-z0-9\_]+).html#' , 'RULE'=>'action=$1&fid=$2' , 'URL'=>'/index.php') ); файл core-modrewrite.php обработка идет через перебор массива если нашли то include файл
|