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

Тема в разделе "Mod Rewrite / htaccess / ЧПУ", создана пользователем avgaz, 11 апр 2009.

Статус темы:
Закрыта.
  1. avgaz

    avgaz

    Регистр.:
    18 окт 2006
    Сообщения:
    188
    Симпатии:
    6
    Добрый день.
    Вопрос в следующем, как преобразовать все ссылки на сайте под ЧПУ
    то есть с htaccess все понятно а вот все существующие ссылки как преобразовать для этого
    С час делаю через
    preg_replace($search, $replace, $content);
    Где первые две переменные массивы что на что заменить
    Но это очень долго нужно каждую ссылку прописывать и тд
    может есть способ по другому?
     
  2. -=Xardas=-

    -=Xardas=-

    Регистр.:
    17 сен 2008
    Сообщения:
    250
    Симпатии:
    58
    извини, но телепаты умерли, что за сайт, самописный или движок, больше конеретинки давай. :)
     
  3. Asin

    Asin

    Регистр.:
    18 авг 2008
    Сообщения:
    621
    Симпатии:
    390
    Если имелось ввиду преобразование внешних ссылок во внутренние, погуглите по запросу "No External Links".
    Если нужна конкретика, укажите движок сайта.
     
  4. avgaz

    avgaz

    Регистр.:
    18 окт 2006
    Сообщения:
    188
    Симпатии:
    6
    Движок MKPortal
    ссылки вида
    index.php?ind=reviews&op=section_view&idev=2
    index.php?ind=news&op=news_show_category&idc=2

    и тд...
     
  5. -=Xardas=-

    -=Xardas=-

    Регистр.:
    17 сен 2008
    Сообщения:
    250
    Симпатии:
    58
    как они должны выглядеть после "преобразования"?
     
  6. OnArs

    OnArs

    Регистр.:
    30 авг 2008
    Сообщения:
    259
    Симпатии:
    74
    Можно например вот так:

    Код:
    RewriteEngine On
    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
    т.е. URL'ы будут вида:
    • reviews-section-2.html
    • news-category-2.html
     
  7. avgaz

    avgaz

    Регистр.:
    18 окт 2006
    Сообщения:
    188
    Симпатии:
    6
    C htaccess все понятно меня интересует вопрос как на сайте преобразовать ссылки что бы они имели вид
    reviews/section/2.html
     
  8. -=Xardas=-

    -=Xardas=-

    Регистр.:
    17 сен 2008
    Сообщения:
    250
    Симпатии:
    58
    типа так?
    PHP:
    <?
    $content "link1: index.php?ind=news&op=news_show_category&idc=2, link2: index.php?ind=reviews&op=section_view&idev=2";
    $link preg_replace("#index\.php\?ind=(.*?)&op=(.*?)&id([a-z]+)=([0-9]+)#""\\1/\\2/\\4.html"$content);
    echo 
    $link;
    /*на выходе получим:
    link1: news/news_show_category/2.html, link2: reviews/section_view/2.html
    */
    ?>
     
  9. avgaz

    avgaz

    Регистр.:
    18 окт 2006
    Сообщения:
    188
    Симпатии:
    6
    С час делается так
    Код:
    $search = array ("/index.php\?pid=([0-9]+)((&amp;)|(&)){0,1}([^>]+>)(.*?)<\/a>/e",
                             '@index.php\?ind=downloads&amp;op=section_view&amp;idev=([0-9]+)&amp;order=&amp;st=([0-9]+)@si',
                               '@index.php\?ind=downloads&amp;op=section_view&amp;idev=([0-9]+)@si',
                               '@index.php\?ind=downloads&amp;op=entry_view&amp;iden=([0-9]+)@si',
                             '@index.php\?ind=downloads&amp;op=submit_file@si',
                             '@index.php\?ind=downloads&amp;op=add_file@si',
                             '@index.php\?ind=downloads&amp;op=update_file&amp;iden=([0-9]+)@si',
                               '@index.php\?ind=downloads&amp;op=search@si',
                             '@index.php\?ind=downloads&amp;op=result_search@si',
                               '@index.php\?ind=downloads&amp;op=submit_comment&amp;ide=([0-9]+)@si',
                               '@index.php\?ind=downloads&amp;op=submit_rate&amp;ide=([0-9]+)@si',
                             '@index.php\?ind=downloads&amp;op=edit_file&amp;iden=([0-9]+)@si',
                             '@index.php\?ind=downloads&amp;op=del_file&amp;iden=([0-9]+)@si',
                             '@index.php\?ind=gallery&amp;op=section_view&amp;idev=([0-9]+)&amp;order=&amp;st=([0-9]+)@si',
                             '@index.php\?ind=gallery&amp;op=section_view&amp;idev=([0-9]+)@si',
                             '@index.php\?ind=gallery&amp;op=foto_show&amp;ida=([0-9]+)@si',
                             '@index.php\?ind=gallery&amp;op=search@si',
                             '@index.php\?ind=gallery&amp;op=result_search@si',
                             '@index.php\?ind=gallery&amp;op=slide_start@si',
                             '@index.php\?ind=gallery&amp;op=add_file@si',
                             '@index.php\?ind=gallery&amp;op=update_file&amp;iden=([0-9]+)@si',
                             '@index.php\?ind=gallery&amp;op=submit_file@si',
                             '@index.php\?ind=gallery&amp;op=submit_postcard&amp;ide=([0-9]+)@si',
                             '@index.php\?ind=gallery&amp;op=submit_comment&amp;ide=([0-9]+)@si',
                             '@index.php\?ind=gallery&amp;op=submit_rate&amp;ide=([0-9]+)@si',
                             '@index.php\?ind=gallery&amp;op=edit_file&amp;iden=([0-9]+)@si',
                             '@index.php\?ind=gallery&amp;op=del_file&amp;iden=([0-9]+)@si',
                             '@index.php\?ind=news&amp;op=news_show_category&amp;idc=([0-9]+)&amp;st=([0-9]+)@si',
                             '@index.php\?ind=news&amp;op=news_show_category&amp;idc=([0-9]+)@si',
                             '@index.php\?ind=news&amp;op=news_show_single&amp;ide=([0-9]+)@si',
                             '@index.php\?ind=news&amp;op=submit_news@si',
                             '@index.php\?ind=news&amp;op=reg_data@si',
                             '@index.php\?ind=news&amp;op=update_news&amp;idnews=([0-9]+)@si',
                             '@index.php\?ind=news&amp;op=search@si',
                             '@index.php\?ind=news&amp;op=result_search@si',
                             '@index.php\?ind=news&amp;op=edit&amp;idnews=([0-9]+)@si',
                             '@index.php\?ind=news&amp;op=delete&amp;idnews=([0-9]+)@si',
                             '@index.php\?ind=news&amp;op=submit_comment&amp;idnews=([0-9]+)@si',
                             '@index.php\?ind=topsite&amp;op=click_site&amp;idb=([0-9]+)@si',
                             '@index.php\?ind=topsite&amp;op=submit_rate&amp;ide=([0-9]+)@si',
                             '@index.php\?ind=topsite&amp;op=submit_site@si',
                             '@index.php\?ind=reviews&amp;op=section_view&amp;idev=([0-9]+)&amp;order=&amp;st=([0-9]+)@si',
                             '@index.php\?ind=reviews&amp;op=section_view&amp;idev=([0-9]+)@si',
                             '@index.php\?ind=reviews&amp;op=entry_view&amp;iden=([0-9]+)@si',
                             '@index.php\?ind=reviews&amp;op=result_search@si',
                             '@index.php\?ind=reviews&amp;op=search@si',
                             '@index.php\?ind=reviews&amp;op=add_file@si',
                             '@index.php\?ind=reviews&amp;op=update_file&amp;iden=([0-9]+)@si',
                             '@index.php\?ind=reviews&amp;op=submit_file1@si',
                             '@index.php\?ind=reviews&amp;op=submit_file@si',
                             '@index.php\?ind=reviews&amp;op=submit_rate&amp;ide=([0-9]+)@si',
                             '@index.php\?ind=reviews&amp;op=edit_file&amp;iden=([0-9]+)@si',
                             '@index.php\?ind=reviews&amp;op=del_file&amp;iden=([0-9]+)@si',
                             '@index.php\?ind=reviews&amp;op=submit_comment&amp;ide=([0-9]+)@si',
                             '@index.php\?ind=reviews&amp;order=([0-9]+)@si',
                             '@index.php\?ind=blog&amp;op=home&amp;idu=([0-9]+)@si',
            
                             '@index.php\?ind=poll&amp;op=poll_show&amp;poll_id=([0-9]+)@si',
                             '@index.php\?ind=poll&amp;op=poll_result&amp;poll_id=([0-9]+)@si',
                             '@index.php\?ind=poll&amp;op=del_comment&amp;idcomm=([0-9]+)&amp;ide=([0-9]+)@si',
                             '@index.php\?ind=poll&amp;op=add_comment@si',
                             '@index.php\?ind=poll&amp;op=poll_save@si',
                             '@index.php\?ind=poll@si', 
                              );
            $replace = array ("rewrite_url('\\6').'-page-\\1.html'. stripslashes('\\5\\6') . '</a>'",
                              'downloads-section-\\1-\\2.html',
                                 'downloads-section-\\1.html',
                                 'downloads-file-\\1.html',
                              'downloads-submit.html',
                              'downloads-addfile.html',
                              'downloads-editfile-\\1.html',
                                 'downloads-search.html',
                              'downloads-searchresult.html',
                              'downloads-comment-\\1.html',
                              'downloads-rate-\\1.html',
                              'downloads-edit-\\1.html',
                              'downloads-delete-\\1.html',
                              'gallery-section-\\1-\\2.html',
                              'gallery-section-\\1.html',
                              'gallery-image-\\1.html',
                              'gallery-search.html',
                              'gallery-searchresult.html',
                              'gallery-present.html',
                              'gallery-addfile.html',
                              'gallery-editfile-\\1.html',
                              'gallery-submit.html',
                              'gallery-ecard-\\1.html',
                              'gallery-comment-\\1.html',
                              'gallery-rate-\\1.html',
                              'gallery-edit-\\1.html',
                              'gallery-delete-\\1.html',
                              'news-section-\\1-\\2.html', 
                              'news-section-\\1.html',
                              'news-\\1.html',
                              'news-submit.html',
                              'news-addnews.html', 
                              'news-editnews-\\1.html', 
                              'news-search.html', 
                              'news-searchresult.html',
                              'news-edit-\\1.html',
                              'news-delete-\\1.html',
                              'news-comment-\\1.html',
                              'site-\\1.html',
                              'rate-site-\\1.html',
                              'topsite-submit.html',
                              'reviews-section-\\1-\\2.html',
                              'reviews-section-\\1.html',
                              'reviews-\\1.html',
                              'reviews-searchresult.html',
                              'reviews-search.html',
                              'reviews-addfile.html',
                              'reviews-editfile-\\1.html',
                              'reviews-submitfile.html',
                              'reviews-submit.html',
                              'reviews-rate-\\1.html',
                              'reviews-edit-\\1.html',
                              'reviews-delete-\\1.html',
                              'reviews-comment-\\1.html',
                              'reviews-sectionorder-\\1.html',
                              'blog-\\1.html',
                              
                              'poll-show-\\1.html', 
                              'poll-result-\\1.html',
                              'poll-deletecom-\\1-\\2.html',
                              'poll-addcoment.html',
                              'poll-save.html',
                              'poll\\1.html',
                              );  
            $output = preg_replace($search, $replace, $content);  
            
            return $output;
    Нужно каждую ссылку прописывать
    можно как то облегчить задачу?
     
  10. bunny

    bunny Постоялец

    Регистр.:
    17 мар 2007
    Сообщения:
    66
    Симпатии:
    4
    Ето вообще не вариант ищи место где фармируються линка и отправляй уже обработанную
    P.S. Не работал с такой СMS и нету у мну ее под рукой поетому и кода привести не могу :(
     
Статус темы:
Закрыта.