Редирект

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

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

    z3rg

    Регистр.:
    2 фев 2007
    Сообщения:
    731
    Симпатии:
    336
    Подскажите как сделать редирект чтобы открылся этот же урл только добавился ключ к примеру:
    вводишь в браузере index.php открывается index.php?key=3242564574
    вводишь в браузере post.php?sdfsf=1 открывается post.php?sdfsf=1&key=3242564574

    и еже вопрос откуда можно брать ключ помимо того как указать в .htaccess
     
  2. MX_Master

    MX_Master Писатель

    Регистр.:
    22 авг 2007
    Сообщения:
    9
    Симпатии:
    1
    RewriteEngine On
    RewriteBase /
    RewriteRule ^.*$ %{REQUEST_URI}?key=3242564574&%{QUERY_STRING} [R=301,L]

    не проверял
     
    z3rg нравится это.
  3. z3rg

    z3rg

    Регистр.:
    2 фев 2007
    Сообщения:
    731
    Симпатии:
    336
    работает только получается зацикливание, нормально срабатывает только если конкретно
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index.php$ %{REQUEST_URI}?key=1 [R=301,L]

    сойдет, только вот почему когда перебрасывает скрипт не выполняется - пишет Moved Permanently
     
  4. -=ber$erk=-

    -=ber$erk=-

    Регистр.:
    17 мар 2008
    Сообщения:
    237
    Симпатии:
    105
    у меня на каталог идут запросы на старый движок /index.php?add
    на новом движке страница добавления в каталог /cncat_add.php
    как сделать перенаправление? предыдущий вариант не работает
     
  5. andrnag

    andrnag

    Регистр.:
    26 мар 2008
    Сообщения:
    350
    Симпатии:
    125
    z3rg
    Попробуй следующий вариант:
    PHP:
    RewriteEngine On
    RewriteBase 
    /
    RewriteCond %{QUERY_STRING} !key=
    RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1?key=3242564574&%{QUERY_STRING} [R=301,L]
    А вот ключ, откуда-нибудбь брать сложно. Как вариант, можно из своего скрипта динамически менять .htaccess, заменяя регуляркой ключ в этом правиле.

    P.S. Кстати, а так ли необходимо, чтобы ключ было видно в строке браузера? Может лучше сделать без 301 редиректа, и не показывать ключ вообще?
     
    z3rg нравится это.
  6. z3rg

    z3rg

    Регистр.:
    2 фев 2007
    Сообщения:
    731
    Симпатии:
    336
    andrnag, большое спасибо, работает :ay:.

    ключ нужен именно в url, чтоб его было видно

    Если в другую директорию закинуть будет работать только если в главной лежит .htaccess или же самому необходимо указывать, вопрос - можно на автомате определить RewriteBase?
     
  7. andrnag

    andrnag

    Регистр.:
    26 мар 2008
    Сообщения:
    350
    Симпатии:
    125
    RewriteBasse по умолчанию равен / и, на сколько я знаю, определить каталог в котором лежит .htaccess из самого .htaccess нельзя.

    Но я не понял зачем тебе в каждый каталог класть свой .htaccess? Пусть лежит в корне, и он будет наследоваться во все папки ниже по дереву.

    P.S. Спасибо за SCS :)
     
    z3rg нравится это.
  8. z3rg

    z3rg

    Регистр.:
    2 фев 2007
    Сообщения:
    731
    Симпатии:
    336
    а можно тоже самое сделать ссылками, то есть дописать к url запрос, а то при редиректе пост запросы не отправляет.
     
Статус темы:
Закрыта.