Преобразование всех ссылок на сайте как?

Статус
В этой теме нельзя размещать новые ответы.
RewriteRule reviews-section-(.*)\.html index.php?ind=reviews&op=section_view&idev=$1
RewriteRule news-category-(.*)\.html index.php?ind=news&op=news_show_category&idc=$1



$document = preg_replace('/index\.php\?ind=([a-z_-]+)&op=[a-z_-]+&[a-z_]*id[a-z_]*=(\d+)/','%1-section-%2.html',$document);

нет необходимости разбирать каждую урлу в отдельности - preg_replace заменит всё сразу. но тут встает сложность - что урлы в href'ах могут различаться по формату.
 
Что то в этом случае все ссылки заменились на '%1-section-%2.html' не зависимо от Id новости или статьи
 
Что то в этом случае все ссылки заменились на '%1-section-%2.html' не зависимо от Id новости или статьи

ой сори не %1 а $1 используется как ссылка в мануал не заглянул прежде чем написать:
Replacement может содержать ссылки вида \\n либо (начиная с PHP 4.0.4) $n, причем последний вариант предпочтительней. Каждая такая ссылка, будет заменена на подстроку, соответствующую n'нной заключенной в круглые скобки подмаске. n может принимать значения от 0 до 99, причем ссылка \\0 (либо $0) соответствует вхождению всего шаблона. Подмаски нумеруются слева направо, начиная с единицы.

При использовании замены по шаблону с использованием ссылок на подмаски может возникнуть ситуация, когда непосредственно за маской следует цифра. В таком случае нотация вида \\n приводит к ошибке: ссылка на первую подмаску, за которой следует цифра 1, запишется как \\11, что будет интерпретировано как ссылка на одиннадцатую подмаску. Это недоразумение можно устранить, если воспользоваться конструкцией \${1}1, указывающей на изолированную ссылку на первую подмаску, и следующую за ней цифру 1.
 
Столкнулся с таким вопросом есть в БД ссылки вида
/index.php?name=blog
/index.php?name=gallery
/index.php?name=news
и тд
нужно заменить на вид
gallery.html
news.html
и тд
делаю так
$row['url'] = preg_replace('/index\.php\?name=([a-z_-])/', "\\1.html" , $row['url']);
на выходе почему то получаю такой вид
g.htmlallery
n.htmlews
где ошибка????
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху