помогите с мод реврайтом

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

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

    vlad_v

    Регистр.:
    30 июн 2006
    Сообщения:
    444
    Симпатии:
    67
    надо такой урл
    Перейти по ссылке
    сделать таким
    Перейти по ссылке
    username - может быть разным

    я пробовал так:

    DirectoryIndex index.php
    Options All -Indexes

    RewriteEngine On
    RewriteRule ^(.*)$ /ref.php?f=$1

    что у меня выдает Internal Server Error


    еще много вариантов перепробывал на что результатом либо:
    Internal Server Error либо Page Not Found


    помогите кто знает что с этим сделать
    выход должен же быть

    ==
    еще я пробовал сделать по аналогии отсюда
    хttp://stackoverflow.com/questions/105308/how-do-i-use-modrewrite-to-change-the-path-and-filename-of-a-url

    я сделал папку [а] , файл назвал index.php
    и сделал такое правило по аналогии
    RewriteEngine On
    RewriteRule ^/(\d+)/$ /a/?f=$1

    тоже Internal Server Error

    спасибо заранее :)
     
  2. a_n_d_y

    a_n_d_y

    Регистр.:
    26 мар 2006
    Сообщения:
    465
    Симпатии:
    61
    А логи реврайта не пробовал заводить?
     
  3. vlad_v

    vlad_v

    Регистр.:
    30 июн 2006
    Сообщения:
    444
    Симпатии:
    67
    нет не пробовал.
    хотя я не особо рублю в мод реврайте если честно,
    мне логи не помогут
     
  4. a_n_d_y

    a_n_d_y

    Регистр.:
    26 мар 2006
    Сообщения:
    465
    Симпатии:
    61
    Тебе может и нет, а вот мне помогли бы в решении твоего вопроса...
     
  5. saen

    saen

    Регистр.:
    6 авг 2006
    Сообщения:
    756
    Симпатии:
    129
    вот так попробуй:
    RewriteRule ^(/?)+([a-zA-Z0-9])$ ref.php?f=$1
     
  6. tirrex

    tirrex

    Регистр.:
    9 ноя 2008
    Сообщения:
    213
    Симпатии:
    60
    может попробовать поставить директиву RewriteBase / ?
     
  7. vlad_v

    vlad_v

    Регистр.:
    30 июн 2006
    Сообщения:
    444
    Симпатии:
    67
    заработал у меня такой вариантю.
    правда работает только реврайт :) остальной сайт не работает (стартовую тоже реврайтит)
    Код:
    RewriteEngine On
    RewriteBase / 
    RewriteRule ^(.*)$ ref.php?f=$1
    кстати, ошибка Internal Server Error возникает если ставить
    вот так
    Код:
    RewriteEngine On
    RewriteBase / 
    RewriteRule ^(.*)$ /ref.php?f=$1
    но это еще не все.
    дело в том, что это работает если я делаю файл ref.php статическим.
    у меня то задумано, что в ref.php ставится кука и делается редирект на главную через header("location:http://bla-bla.com");

    если файл ref.php в редиректом, то при выполнениии реврайта мне браузер выдает
    Код:
    Неверное перенаправление на странице
    Firefox определил, что сервер перенаправляет запрос на этот адрес таким образом, что он никогда не завершится.
     
  8. BDSG

    BDSG

    Регистр.:
    28 фев 2009
    Сообщения:
    203
    Симпатии:
    109
    угу.. ты заставляешь искать ref.php по адресу site.ru//..


    а location:ht_tp://bla-bla.com - это на тот же сайт?.. если да, то смотри, что получается: ты с ref.php рдиректишь на какой-то еще адрес в пределах сайта, но по условию mod_rewrite все (абсолютно: RewriteRule ^(.*)$), что приходит на сайт передается в ref.php, который перенаправляет............ вот тебе и замыкание - сказка про белого бычка.. ))
     
  9. vlad_v

    vlad_v

    Регистр.:
    30 июн 2006
    Сообщения:
    444
    Симпатии:
    67
    ясно. надо правило которое переписывает не все, тогда должно заработать.

    эта фича с реврайтом для меня не критична, для красоты делается.
    но все равно хотелось бы ее реализовать.
    кто поможет - с меня пиво :)
     
  10. a_n_d_y

    a_n_d_y

    Регистр.:
    26 мар 2006
    Сообщения:
    465
    Симпатии:
    61
    На счет пива уже интересней :)
    Код:
    RewriteEngine On
    RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ /ref.php?f=$1 [L]
    
     
Статус темы:
Закрыта.