За последние 24 часа нас посетили 19080 программистов и 1623 робота. Сейчас ищут 757 программистов ...

Непонятность с RewriteRule

Тема в разделе "Прочие вопросы по PHP", создана пользователем Bogdan, 11 июн 2009.

  1. Bogdan

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

    С нами с:
    11 июн 2009
    Сообщения:
    4
    Симпатии:
    0
    В вопросе человекопонятных URL я новичёк. Есть задача. Имею адрес вида: site.com/news.php?nid=9 Нужен вида site.com/news/9 и аналогично для articles и пр. страниц.

    Пишу следующее:
    Код (Text):
    1. RewriteEngine On
    2. Options +FollowSymLinks
    3. RewriteBase /
    4.  
    5. RewriteRule ^news/([A-Za-z0-9]+)$ news.php?nid=$1
    6. RewriteRule ^articles/([A-Za-z0-9]+)$ articles.php?id=$1
    Почему у меня не считывается параметр $nid если в адресной строке прописать site.com/news/9 а если прописать site.com/news/?nid=9 то срабатывает?
    Как правильно составить правила?
     
  2. Apple

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

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Почему $2 ?
    Скобка-то всего одна единственная.
     
  3. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    ^/news/...

    первый слеш ОБЯЗАТЕЛЕН, т.к. он часть пути.

    ты хоть прочитай что такое УРЛ и из чего он составлен предже чем ваять.

    к примеру тут
    http://ru2.php.net/manual/ru/function.parse-url.php
     
  4. Bogdan

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

    С нами с:
    11 июн 2009
    Сообщения:
    4
    Симпатии:
    0
    Наличие либо отсутствие слеша никоим образом не повлияло на результат - открывалась страница news.php без передачи параметров.
    У меня вообще параметры не передаются никаким манером кроме site.com/news/?nid=9
    Каким должно быть правило для приведения site.com/news.php?nid=9 в site.com/news/9 ?
     
  5. Hight

    Hight Старожил
    Команда форума Модератор

    С нами с:
    5 мар 2006
    Сообщения:
    7.153
    Симпатии:
    0
    Адрес:
    из злой параллельной вселенной
    Bogdan
    Аватарку на фото меняем или удаляем.
     
  6. Bogdan

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

    С нами с:
    11 июн 2009
    Сообщения:
    4
    Симпатии:
    0
    "Спасибо".
    Разобрался - проблема в localhost, правильно составленные правила заработали на хостинге. Очевидно, проблема была в сборке Apach ("Denwer") или его настройках модуля mod_rewrite.