помогите с мод реврайтом

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

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

    verfaa

    Регистр.:
    29 янв 2007
    Сообщения:
    375
    Симпатии:
    41
    У меня на сайте несколько языков, при выборе русского
    отображается
    http://сайт.com/index.php?language_code=2
    при выборе французкого языка
    http://сайт.com/index.php?language_code=3
    при выборе итальянского
    http://сайт.com/index.php?language_code=6
    и т.д. по аналогии с другими языками.

    А я хочу чтобы отображалось при выборе русского
    http://сайт.com/russian/

    http://сайт.com/french/
    при выборе французкого языка

    http://сайт.com/italian/
    при выборе итальянского
    и т. д. с другими языками, подскажите пожалуйста как это сделать? И что писать в htaccess ?

    И ещё, юзеры у меня доступны вот так
    http://сайт.com/viewprofile.php?id=183

    А я хочу, чтобы они отображались вот так
    http://сайт.com/тут_ник_юзера/183/

    или хотябы так
    http://сайт.com/user/183/
     
  2. poikl

    poikl

    Регистр.:
    7 ноя 2006
    Сообщения:
    164
    Симпатии:
    31
    RewriteRule /russian/ index.php?language_code=2
    попробуй так со слешами мог напутать /russian/ и остольное по аналоги но это тупой метод может кто подскажит как это все можно в одно правило уложить а то у самого .htaccess строк 100
     
    verfaa нравится это.
  3. aressto

    aressto

    Регистр.:
    17 июн 2007
    Сообщения:
    439
    Симпатии:
    46
    вот это вариант сразу исключай, если только у тебя в cms запрещены кирилические ники и ники со всякими знаками, второй вариант который ты сказал безопаснее
     
    verfaa нравится это.
  4. ConstNW

    ConstNW Постоялец

    Регистр.:
    30 июн 2007
    Сообщения:
    132
    Симпатии:
    39
    Код:
    <IfModule mod_rewrite.c>
    	RewriteEngine On
    	RewriteBase /
    	
    	RewriteRule russian	/index.php?language_code=2 [L]
    	RewriteRule french	/index.php?language_code=3 [L]
    	RewriteRule italian	/index.php?language_code=6 [L]
    	RewriteRule user/(\d+)	/viewprofile.php?id=$1 [L]
    </IfModule>
    
     
    verfaa нравится это.
  5. andrnag

    andrnag

    Регистр.:
    26 мар 2008
    Сообщения:
    350
    Симпатии:
    125
    Добавлю к словам aressto, что если ники разрешены только из латинских и цифр, и очень хочется сделать так, чтобы в адресе был ник юзера, то нужно:
    1. сделать в движке просмотр профиля по нику например так:
    http://сайт.com/viewprofile.php?name=SomeBoy
    2. сделать правило
    RewriteRule users/(.+) /viewprofile.php?name=$1 [L]
    Тогда адрес профиля юзера будет site.ru/users/SomeBoy

    Можно сделать и так, как ты предлагал site.ru/SomeBoy, но тогда, нужно придумать как отделить адреса юзеров, от остальных страниц сайта (просто нужно соблюсти правильный порядок директив в .htaccess — сначала обработать все известные адреса страниц сайта, а потом, в конце, задать правило
    RewriteRule ^(.+)$ /viewprofile.php?name=$1 [L])
     
Статус темы:
Закрыта.