ФорумПрограммированиеPHP для идиотов → Затруднения с mod_rewrite

Затруднения с mod_rewrite

  • artoodetoo

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

    Spritz 1 июня 2010 г. 7:58

    Такая задача: в корне сайта есть папочки
    /legacy/
    /new/
    и, возможно другие :)

    допустим я формирую запрос http://thesite.name/foobar
    - если есть такой файл foobar, то должен отдаться он
    - иначе если в папке /new/ есть файл foobar, то должен отдаться он,
    - иначе если в папке /legacy/ есть foobar, то должен отдаться он
    - иначе лажа

    сделал такой .htaccess:

    AddDefaultCharset utf-8
    DirectoryIndex index.php

    RewriteEngine On
    RewriteBase /

    RewriteCond %{DOCUMENT_ROOT}/new/%{REQUEST_URI} -f
    RewriteRule (.*) /new/$1 [L]

    RewriteCond %{DOCUMENT_ROOT}/legacy/%{REQUEST_URI} -f
    RewriteRule (.*) /legacy/$1 [L]


    оно работает, кроме случая http://thesite.name/, т.е. когда какбы должен сработать index.php
    что-то я не могу сочинить как сюда добавить этот "directory index", помогайте!
    ιιlllιlllι унц-унц
  • phpdude

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

    Spritz 1 июня 2010 г. 8:00, спустя 2 минуты 4 секунды

    artoodetoo, артедоо артедо …

    такую сложную работу проделал, а на хуйне застрял :D


    RewriteRule ^$ index.php [L]


    вставь после rewritebase'а
    Сапожник без сапог
  • artoodetoo

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

    Spritz 1 июня 2010 г. 8:19, спустя 19 минут 2 секунды

    изменил на

    DirectoryIndex /legacy/index.php


    теперь полюбому http://thesite.name/ отрабатывает /legacy/index.php даже если в /new/ есть свой index.php
    ГОВНО!
    Спустя 38 сек.
    phpdude, дуд, ща попробую…
    Спустя 158 сек.
    реальне работае

    AddDefaultCharset utf-8

    RewriteEngine On
    RewriteBase /
    RewriteRule ^$ index.php [L]

    RewriteCond %{DOCUMENT_ROOT}/new/%{REQUEST_URI} -f
    RewriteRule (.*) /new/$1 [L]

    RewriteCond %{DOCUMENT_ROOT}/legacy/%{REQUEST_URI} -f
    RewriteRule (.*) /legacy/$1 [L]


    спасибо родной!
    ιιlllιlllι унц-унц
  • phpdude

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

    Spritz 1 июня 2010 г. 8:55, спустя 36 минут 36 секунд

    artoodetoo, еще бы не работало :)
    Спустя 32 сек.
    просто директори индекс отрабатывает позднее реврайта вот и все, а тут вы как бы "сэмулировали" этот модуль :)
    Сапожник без сапог
  • artoodetoo

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

    Spritz 1 июня 2010 г. 10:05, спустя 1 час 9 минут 37 секунд

    Я знал, пiха помогает!

    Пару слов зачем понадобился такой .htaccess. Есть старый сайт. Хочу кардинально переделать его нутро, начисто. Процесс небыстрый. Первое условие — сайт должен оставаться рабочим. Новый движок будет работать с той же БД, использовать ту же авторизационную куку, ту же схему УРЛов (поначалу), а вот скрипты его не будут обращаться к старым библиотекам!
    new и legacy не зависят друг от друга

    Идея такова: статику (js, img, css) оставляю на месте, а *.php  и рабочие папки вроде файлового кеша двигаю в папку legacy. Как только в new появляется новая версия какой-то части, она получает управление. В любой момент если что-то пошло не так, можно удалить новый файл, тогда будет работать старый скрипт из legacy.
    ιιlllιlllι унц-унц
  • phpdude

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

    Spritz 1 июня 2010 г. 10:10, спустя 5 минут 32 секунды

    artoodetoo, привет тебе КО!

    я это понял из первого поста с твоим хтакесс.
    Сапожник без сапог
  • artoodetoo

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

    Spritz 1 июня 2010 г. 10:21, спустя 10 минут 18 секунд

    Не сомневаюсь. Это я для школьников написал. Кому-то может пригодиться.
    Спустя 89 сек.
    [size=18]1818[/size]
    ιιlllιlllι унц-унц
  • Абырвалг

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

    Spritz 1 июня 2010 г. 10:31, спустя 10 минут 18 секунд

    эт самое, я rewrite base никогда не ставлю. Нафуя оно нужно?
  • artoodetoo

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

    Spritz 1 июня 2010 г. 10:54, спустя 23 минуты 16 секунд

    Я практически на автомате ставлю RewriteBase и AddDefaultCharset.
    RewriteBase нужен если твой .htaccess лежит НЕ в корне сайта и возникает кагбе неоднозначность в URI . тогда ты явно можешь указать префикс либо "/" либо "/abcd"
    ιιlllιlllι унц-унц
  • phpdude

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

    Spritz 1 июня 2010 г. 11:25, спустя 30 минут 49 секунд


    Я практически на автомате ставлю RewriteBase и AddDefaultCharset.
    RewriteBase нужен если твой .htaccess лежит НЕ в корне сайта и возникает кагбе неоднозначность в URI . тогда ты явно можешь указать префикс либо "/" либо "/abcd"
    дурость.

    он говорит базу для файлов, которые идут в rewriterule.
    Сапожник без сапог
  • artoodetoo

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

    Spritz 1 июня 2010 г. 11:41, спустя 15 минут 37 секунд

    это не одно и то же? отрезает указанное начало uri, потом работают rewriterule, затем этот кусочек снова приклеивается.
    разве нет?
    Спустя 174 сек.
    http://htaccess.net.ru/doc/mod_rewrite/RewriteBase.php
    ιιlllιlllι унц-унц
  • phpdude

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

    Spritz 1 июня 2010 г. 11:51, спустя 10 минут 20 секунд

    artoodetoo, дуд - суровый модератор, котрый не объясняет свои посты и всех гнобит! не зли а то забаню :D

    да я не особо читал, спать хочется
    Спустя 49 сек.
    а еще мой кот - ленивая сука, по дому летает муха которую я уже проклял несколько раз, а коту тупо похуй он смотрит как она у нег оперед носом летает, даже ловить не собирается :-D

    а она подлетает, садится и ползает с интервалом в 3 0секунд
    Сапожник без сапог
  • artoodetoo

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

    Spritz 1 июня 2010 г. 12:08, спустя 16 минут 58 секунд

    LOL
    тебе надо апгрейднуть кота. у меня была когда-то кошка, она питалась только подножным кормом: мухами, откуда-то мышей приносила, ну и что со стола сумеет спиздить. дома было чисто всегда, никаких мух
    Спустя 102 сек.
    то есть они были очень недолго

    p.s. даою тебе аватару
    ιιlllιlllι унц-унц
  • phpdude

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

    Spritz 1 июня 2010 г. 12:15, спустя 7 минут 6 секунд

    artoodetoo, ооо!! хочу такую кнопку!
    Спустя 13 сек.
    нее, котэ иа лублээ
    Сапожник без сапог
  • Yasumi

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

    Spritz 18 августа 2012 г. 23:08, спустя 809 дней 10 часов 52 минуты

    нчего … я провалился … к тому же просыпался часто, подходил к компьютеру ночью

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