Как преобразовать любой регистр в URL в определенный ?

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

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

    zverOK Постоялец

    Регистр.:
    15 фев 2008
    Сообщения:
    133
    Симпатии:
    115
    Собственно вопрос. Столкнулся с этим в WebAsyst.
    Ссылки на категории и товары в WebAsyst имеют в ссылках слова в таком регистре:
    categoryID
    productID

    И если при вводе адреса в браузере вместо них прописать categoryid и productid - то сайт выдает ошибку 404.

    Как можно это исправить с помощью htaccess, чтобы запрос, в котором присутствуют слова categoryid и productid(в любом регистре), преобразовывался в запрос с содержанием слов categoryID productID ??:thenks:
     
  2. antidote

    antidote

    Регистр.:
    21 янв 2008
    Сообщения:
    167
    Симпатии:
    42
    Попробуй в правилах указывать NC
    http://www.htmlweb.ru/php/htaccess.php
    Код:
    RewriteRule ^categoryid=(\d)$ index.php?categoryID=$1 [NC,QSA]
    RewriteRule ^productid=(\d)$ index.php?productID=$1 [NC,QSA]
    
     
    zverOK нравится это.
  3. zverOK

    zverOK Постоялец

    Регистр.:
    15 фев 2008
    Сообщения:
    133
    Симпатии:
    115
    не помогает.
    Вот какой код на данный момент:
    HTML:
    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^site\.ru [NC]
    RewriteRule ^(.*)$ http://www.site.ru/$1 [L,R=301]
    RewriteRule ^categoryid=(\d)$ index.php?categoryID=$1 [NC,QSA]
    RewriteRule ^productid=(\d)$ index.php?productID=$1 [NC,QSA]
    # WebAsyst .htaccess config
    AddDefaultCharset UTF-8
     
  4. antidote

    antidote

    Регистр.:
    21 янв 2008
    Сообщения:
    167
    Симпатии:
    42
    Не странно что не работает, телепаты в отпуске, я не знаю какой урл нужно обработать и каким он должен получиться. Пример бы увидеть!
    Хотя можно поиздеваться.
    Код:
    RewriteRule ^(.*)categoryid(.*)$ $1categoryID$2 [NC,QSA]
    RewriteRule ^(.*)productid(.*)$ $1productID$2 [NC,QSA]
    
     
  5. zverOK

    zverOK Постоялец

    Регистр.:
    15 фев 2008
    Сообщения:
    133
    Симпатии:
    115
    Вот 2 примера:
    HTML:
    http://www.site.ru/index.php?productID=1061&ukey=product&did=34
    http://www.site.ru/index.php?categoryID=2
    Такими они должны быть.
    Так как при вводе :
    HTML:
    1)http://www.site.ru/index.php?productid=1061&ukey=product&did=34
    2)http://www.site.ru/index.php?categoryid=2
    1- выдает 404 ошибку
    2- перебрасывает на главную страничку.
    :(
     
  6. antidote

    antidote

    Регистр.:
    21 янв 2008
    Сообщения:
    167
    Симпатии:
    42
    ИМХО вот так должно работать
    Код:
    RewriteCond %{QUERY_STRING} ^productid=(.+)$ [NC]
    RewriteRule ^(.*)$ index.php?productID=%1 [QSA]
    
    RewriteCond %{QUERY_STRING} ^categoryid=(.+)$ [NC]
    RewriteRule ^(.*)$ index.php?categoryID=%1 [QSA]
    
     
    zverOK нравится это.
  7. zverOK

    zverOK Постоялец

    Регистр.:
    15 фев 2008
    Сообщения:
    133
    Симпатии:
    115
    antidote, благодарю ;)
    а не подскажешь, что ещё нужно прописать?
    если url'ы имеют вид такой:
    HTML:
    www.site.ru/index.php?product_slug=product-name&productid=22&ukey=product&did=34
    www.site.ru/index.php?product_slug=1083&productid=1083&ukey=product&did=36
    а надо чтобы было:
    HTML:
    www.site.ru/index.php?product_slug=product-name&productID=22&ukey=product&did=34
    www.site.ru/index.php?product_slug=1083&productID=1083&ukey=product&did=36
    а может есть какое-то общее правило? чтобы в любом месте url'а productid заменялся на productID ? :ah:
     
  8. antidote

    antidote

    Регистр.:
    21 янв 2008
    Сообщения:
    167
    Симпатии:
    42
    Как-то так
    Код:
    RewriteCond %{QUERY_STRING} ^(.*)productid=(.+)$ [NC]
    RewriteRule ^(.*)$ index.php?productID=%2 [QSA]
    
     
    zverOK нравится это.
Статус темы:
Закрыта.