Прошу помощи...

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

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

    deloest Создатель

    Регистр.:
    27 июн 2009
    Сообщения:
    22
    Симпатии:
    3
    Здраствуйте, подскажите как с помощью .htaccess сделать ссылку такого вида

    Код:
    http://site.ru/click.php?id=1&url=http://google.ru
    вот в такой вид

    Код:
    http://site.ru/click/1/http://google.ru
    а еще лучше если будет такой вид

    Код:
    http://site.ru/1/http://google.ru
    где срабатывает скрипт click.php с переменными $id и $url
     
  2. ZuArt

    ZuArt Создатель

    Регистр.:
    11 фев 2008
    Сообщения:
    16
    Симпатии:
    4
    Код:
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(\d+)/(.+)$ /click.php?id=$1&url=$2 [QSA,L]
     
  3. andrnag

    andrnag

    Регистр.:
    26 мар 2008
    Сообщения:
    350
    Симпатии:
    125
    ZuArt все паравильно написал, только если все адреса являются виртуальными, т.е. используется ЧПУ нужно следить, чтобы не было конфликтов с другими адресами, которые удовлетворяют такому регулярному выражению. Т.е. например следить, чтобы не было папок второго уровня состоящих только из цифр.
    В противном случае нужно перейти к такому адресу: http://site.ru/click/1/http://google.ru и соответственно изменить RewriteRule:
    RewriteRule ^/click/(\d+)/(.+)$ /click.php?id=$1&url=$2 [QSA,L]
    И не использовать больше папок второго уровня с именем click.

    Вторя трабла, это участок адреса http:// - здесь спец символы будут url-закодированы при открытии в браузере. Возможно стоит убирать эту подстроку при формировании ссылки, а потом добавлять в click.php.
     
Статус темы:
Закрыта.