За последние 24 часа нас посетили 72457 программистов и 1649 роботов. Сейчас ищут 903 программиста ...

Mod_rewrite

Тема в разделе "Регулярные выражения", создана пользователем energy2008, 17 дек 2009.

  1. energy2008

    energy2008 Активный пользователь

    С нами с:
    24 июн 2008
    Сообщения:
    47
    Симпатии:
    0
    Как разрешить Mod_rewrite читать урл и после знака вопроса?

    Следующая хрень не срабатывает
    RewriteRule ^catalog\.php\?(ua([A-z]*))+p([0-9]+)(-([_a-z]+))?(-(1))?$ /catalog.php?vm=1&dm=ua$2&page=$3&order=$5&sort=$7 [QSA]
     
  2. obsrv

    obsrv Активный пользователь

    С нами с:
    2 окт 2008
    Сообщения:
    238
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    1. Читаем:
    Note: Query String
    The Pattern will not be matched against the query string. Instead, you must use a RewriteCond with the %{QUERY_STRING} variable. You can, however, create URLs in the substitution string, containing a query string part. Simply use a question mark inside the substitution string, to indicate that the following text should be re-injected into the query string. When you want to erase an existing query string, end the substitution string with just a question mark. To combine a new query string with an old one, use the [QSA] flag.
    2. гуглим
    3. есть примеры
     
  3. pasha.proton

    pasha.proton Активный пользователь

    С нами с:
    23 дек 2009
    Сообщения:
    3
    Симпатии:
    0
    У меня проблема по проще )))
    Скажите почему не работает это выражение "RewriteRule ^product/(.*)/ /product.php?id=$1" - может я написал что не так? В регулярных выражениях новичек и могу фигню писать )))
    Или подскажите как правильно описать выражение что бы из адреса типа "/product.php?id=999" получить "/product/999/" ?
    Заранее благодарю
     
  4. obsrv

    obsrv Активный пользователь

    С нами с:
    2 окт 2008
    Сообщения:
    238
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Код (Text):
    1.  
    2. RewriteRule ^product/(\d+)(\/)*$ http://www.test.ru/product.php?id=$1 [L]
    Код (Text):
    1.  
    2. RewriteCond %{QUERY_STRING}  ^id=(\d+)$
    3. RewriteRule ^product\.php$ http://www.test.ru/product/%1/? [L]
     
  5. pasha.proton

    pasha.proton Активный пользователь

    С нами с:
    23 дек 2009
    Сообщения:
    3
    Симпатии:
    0
    Второй код начал изменять, но происходит фигня - когда я перехожу по ссылке он загружает в адресную строку тот адрес который мне нужен, но страницу загружает ту же с которой я начинал переход. При этом не подружает таблицу стилей. После этого любые попытки перейти на другие страницы с загруженной заканчиваются неудачей и уже не страбатывает правило в .htaccess. В чем может быть проблема?
     
  6. obsrv

    obsrv Активный пользователь

    С нами с:
    2 окт 2008
    Сообщения:
    238
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Я надеюсь эти два 'кода' не стоят вместе).
    Надо смотреть: 1 mod_rewrite лог файл 2. заголовки (например: LiveHTTPHeaders для ff)
     
  7. pasha.proton

    pasha.proton Активный пользователь

    С нами с:
    23 дек 2009
    Сообщения:
    3
    Симпатии:
    0
    Нет, они не стоят вместе )))
    Попробую взять лог у администраторов хостинга, дело в том что сайт уже в интернете и это создает определенные трудности...