ФорумПрограммированиеPHP для идиотов → Помогите с настройкой .htaccess

Помогите с настройкой .htaccess

  • TRIAL

    Сообщения: 988 Репутация: N Группа: Джедаи

    Spritz 12 апреля 2011 г. 16:55

    Проблема в следующем:
    есть картинка <img src='http://localhost/my_project/picture/avatar/'>
    есть .htaccess
    RewriteEngine On
    RewriteRule /action.php$ action.php [QSA]
    RewriteRule ^picture/([a-z0-9\_\-])/$ picture.php?pic=$1 [QSA]
    RewriteRule ^user/id([0-9])$ index.php?dir=user&id=$1 [QSA]
    RewriteRule ^([a-z0-9\_\-]+)/$ index.php?dir=$1 [QSA]

    И ясное дело ничего не работает :)
    При этом все остальные правила работают отлично и если вручную прописать picture.php?pic=avatar то тоже все заработает. При переходе непосредственно по ссылке http://localhost/my_project/picture/avatar/ так же тишина, картинку не показывает. Ошибок прочих никаких не выдает.
    Подскажите в чем может быть дело и в каком направлении вообще копать.
    from TRIAL with LOVE
  • master

    Сообщения: 3244 Репутация: N Группа: Джедаи

    Spritz 12 апреля 2011 г. 17:21, спустя 26 минут 22 секунды

    Я кажется понял чем этот раздел отличается от остальных. Здесь вопросы задаются так, что невозможно однозначно понять чего хочет ТС.

    И ясное дело ничего не работает :)
    При этом все остальные правила работают отлично

    формулировочка супер

    если вручную прописать picture.php?pic=avatar то тоже все заработает

    ну так пропиши

    При переходе непосредственно по ссылке http://localhost/my_project/picture/avatar/ так же тишина

    а должна музыка играть?
    Спустя 123 сек.
    За фразу "ничего не работает" я бы банил.
    не всё полезно, что в swap полезло
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 12 апреля 2011 г. 17:26, спустя 4 минуты 55 секунд

    ([a-z0-9\_\-])/$

    +

    проебал =)

    доделывай колбаса)
    Спустя 31 сек.
    master, не ругайся, триал нормальный чел =)

    он больше по верстке
    Спустя 24 сек.
    ([a-z0-9\_\-]+)/$

    надо так короче
    Сапожник без сапог
  • master

    Сообщения: 3244 Репутация: N Группа: Джедаи

    Spritz 12 апреля 2011 г. 17:31, спустя 4 минуты 34 секунды

    master, не ругайся, триал нормальный чел =)

    да я знаю, но стиль вопроса как бы намекает
    одно дело написать
    "урл такой-то отображает то-то - правильно
    урл такой-то отображает то-то - правильно
    урл такой-то отображает то-то, а должен то-то - неправильно"

    а другое - "ничего не работает"
    не всё полезно, что в swap полезло
  • TRIAL

    Сообщения: 988 Репутация: N Группа: Джедаи

    Spritz 12 апреля 2011 г. 17:35, спустя 4 минуты 35 секунд

    Изменил но всё равно не хочет работать.
    Сорри, сразу не объяснил что хочу чтоб ссылка на картинку выглядела как написано сверху, т.е. mysite.ru/picture/picture_name/
    from TRIAL with LOVE
  • master

    Сообщения: 3244 Репутация: N Группа: Джедаи

    Spritz 12 апреля 2011 г. 17:37, спустя 1 минуту 36 секунд

    RewriteRule ^picture/([a-z0-9\_\-])/$ picture.php?pic=$1 [QSA]

    зависит от того где лежит htaccess, если в корне, то для урла
    /my_project/picture/avatar/
    нужно правило
    RewriteRule ^my_project/picture/(\w*) my_project/picture.php?pic=$1
    звёздочка, а не плюсик - потому что может быть урл /my_project/picture/

    Вообще говоря, если мы разбиваем урл по сегментам, то и в регулярке в качестве разделителя должен быть знак сегмента
    RewriteRule ^my_project/picture/([^/]*) my_project/picture.php?pic=$1
    тогда у нас отработает и /my_project/picture/bla-bla_bla.bla
    не всё полезно, что в swap полезло
  • TRIAL

    Сообщения: 988 Репутация: N Группа: Джедаи

    Spritz 12 апреля 2011 г. 17:40, спустя 3 минуты 21 секунду

    Так, проблему решил заменой http://localhost/mysite/picture/name/ на ./picture/name/
    Почему вдруг заработало понять не могу, другие ссылки на профиль юзера например имеют вид http://localhost/mysite/user/id123 и при правиле RewriteRule ^user/id([0-9])$ index.php?dir=user&id=$1 [QSA] отлично работают
    from TRIAL with LOVE
  • master

    Сообщения: 3244 Репутация: N Группа: Джедаи

    Spritz 12 апреля 2011 г. 17:41, спустя 58 секунд

    TRIAL, проблемы решаются от простого к сложному. воспроизведи самый простой случай, который работает. например, создай в корне тестовый скрипт test.php с содержимым print_r ($_GET)
    потом отключи все правила в htaccess и напиши тестовое
    RewriteRule ^picture test.php
    если сработает то
    RewriteRule ^picture/ test.php
    затем
    RewriteRule ^picture/(\w*) test.php
    затем
    RewriteRule ^picture/(\w*) test.php?pic=$1
    и т.д. пока не приведёшь урл к нужному виду. потом переименуй test.php, потом перемести его в нужную папку. потом включай остальные правила. если что-то перестанет работать - исследуй тщательнее, в конце концов разберёшься
    не всё полезно, что в swap полезло
  • TRIAL

    Сообщения: 988 Репутация: N Группа: Джедаи

    Spritz 12 апреля 2011 г. 17:49, спустя 7 минут 30 секунд

    Да в том-то и дело что всё лежит в корне и одно правило работает а другое нет.
    Ладно, щас последую твоему совету и посмотрю что получится.
    from TRIAL with LOVE
  • TRIAL

    Сообщения: 988 Репутация: N Группа: Джедаи

    Spritz 12 апреля 2011 г. 18:09, спустя 20 минут 10 секунд

    RewriteRule ^picture test.php - работает
    RewriteRule ^picture/ test.php - не работает
    from TRIAL with LOVE
  • master

    Сообщения: 3244 Репутация: N Группа: Джедаи

    Spritz 12 апреля 2011 г. 18:13, спустя 4 минуты 10 секунд

    моя твоя не понимать
    не работает - это когда у тебя электричество в раёне отрубают и вся техника колом встаёт
    во всех других случаях есть "ожидаю Y а получаю Z"
    не всё полезно, что в swap полезло
  • TRIAL

    Сообщения: 988 Репутация: N Группа: Джедаи

    Spritz 12 апреля 2011 г. 18:28, спустя 15 минут 9 секунд

    Ок.
    Перенаправление работает но не передается параметр
    RewriteEngine On
    RewriteRule ^picture test.php?a=1 - параметр передается
    RewriteRule ^picture/ test.php?a=1 - параметр не передается

    Если ввести ссылку типа /picture/?b=1 то test.php выведет b но не выведет a
    from TRIAL with LOVE
  • fgets

    Сообщения: 1099 Репутация: N Группа: Кто попало

    Spritz 12 апреля 2011 г. 19:23, спустя 55 минут 1 секунду

    я по жизни ставил (.*) и у меня всегда нормально параметры передавало, что /так, что /так/ - приходил всегда так
  • Givi

    Сообщения: 2284 Репутация: N Группа: Адекваты

    Spritz 12 апреля 2011 г. 21:09, спустя 1 час 45 минут 34 секунды

    TRIAL, так а реально чего не передать все управление с параметрами в УРЛе роутеру? Нахуй эти шаманства с .htaccess если можно все перенаправлять на индекс и там уже разобрать все параметры как тебе нужно.
  • Sinkler

    Сообщения: 7958 Репутация: N Группа: в ухо

    Spritz 12 апреля 2011 г. 21:26, спустя 17 минут 21 секунду

    о великий усатый васяц еще про это писал)))

Пожалуйста, авторизуйтесь, чтобы написать комментарий!