За последние 24 часа нас посетил 18951 программист и 1608 роботов. Сейчас ищет 891 программист ...

htaccess и RewriteRule

Тема в разделе "Регулярные выражения", создана пользователем Goofman, 9 июн 2010.

  1. Goofman

    Goofman Активный пользователь

    С нами с:
    18 май 2010
    Сообщения:
    24
    Симпатии:
    0
    Двигатель форума создает какие-то там названия URL, они как-то там расположены на сервере.

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

    Разве это можно сделать через htaccess через RewriteRule? Ведь там из формата "ввода в браузере" в "реальный"... Или я чего-то не понимаю.
     
  2. lexa

    lexa Активный пользователь

    С нами с:
    22 июл 2007
    Сообщения:
    1.746
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
  3. Goofman

    Goofman Активный пользователь

    С нами с:
    18 май 2010
    Сообщения:
    24
    Симпатии:
    0
    А этот вопрос точно там есть?
     
  4. lexa

    lexa Активный пользователь

    С нами с:
    22 июл 2007
    Сообщения:
    1.746
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Не, про русский язык там нифига не написано. :) Серьёзно. вопрос за гранью добра и зла. Ничего не понятно.
     
  5. Goofman

    Goofman Активный пользователь

    С нами с:
    18 май 2010
    Сообщения:
    24
    Симпатии:
    0
    Я не программист. Мне нужно просто знать, как это делать.
    Насколько я понял, RewriteRule просто переводит запрос браузера в URL каталогов сервера (т.е. это просто разновидность редиректа?), а мне нужно не меняя структуру каталогов отображать в строке браузера читабельную, видоизмененную строку, распознаваемую поисковиками... Например, пользователь набирает

    www.xxx.com

    а в строке отображается

    www.xxx.com/special-name/
     
  6. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Да нихрена ты не понял.
    ModRеwrite - это модуль веб-сервера, который читает и преобразует строку запроса в соответствии с правилами и условиями. Повторяю: С ПРАВИЛАМИ И УСЛОВИЯМИ.
    Физически может не существовать ни директорий, ни файлов, которые прописываются в адресной строке.

    Привожу простейший пример без всяких нюансов:
    1. Строка браузера ( http://example.com/reality/ )
    2. Модуль читает и преобразует эту строку в соответствии с прописанными правилами.
    Это может быть всё RewriteRule, RewriteCond, RewriteBase, RewriteMap - всё это условия, при которых сработает MR.
    3. После разбора правила И соответствия запроса условию ИСПОЛНЯЕТСЯ прописанное правило, т.е если:
    /reality/* перенаправить (переложить работу) на файл index.php?mod=reality&input=$1

    Физически существует только тот файл, которому передаётся управление.
    Всё остальное - сказка, которую рассказывает пользователю сервер.
     
  7. Goofman

    Goofman Активный пользователь

    С нами с:
    18 май 2010
    Сообщения:
    24
    Симпатии:
    0
  8. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    Это обычный редирект, ModRewrite тут не при чём.
    Редирект можно сделать тысячей и одним способом.
    Если имеется в виду, что /different-name то же самое, что и index.php, то тогда прописывается правило.
    С помощью ModRewrite можно заставить ОТРАБОТАТЬ /different-name, но не редиректить.
     
  9. Goofman

    Goofman Активный пользователь

    С нами с:
    18 май 2010
    Сообщения:
    24
    Симпатии:
    0
    Это не редирект. Я вижу, что вы сами не знаете. Много слов, что мне писать -- непонятно...
     
  10. Apple

    Apple Активный пользователь

    С нами с:
    13 янв 2007
    Сообщения:
    4.984
    Симпатии:
    2
    А я вижу банальное неумение объяснить задачу и оправдать себя.
    Впрочем, это не моя проблема. Все ответы находятся выше, если нет способностей переварить эту информацию, то, простите, это уже не мой, как говорится, комплекс. Или объясняете то, что именно нужно, человеческим языком, или ищете нужную информацию в ответах выше. А она там есть.
     
  11. Goofman

    Goofman Активный пользователь

    С нами с:
    18 май 2010
    Сообщения:
    24
    Симпатии:
    0
    Если кто знает, еще актуально.
     
  12. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    Goofman
    Вам уже ответили, если вы не понимаете того что вам написали - обратитесь к специалисту.
     
  13. Goofman

    Goofman Активный пользователь

    С нами с:
    18 май 2010
    Сообщения:
    24
    Симпатии:
    0
    Simpliest
    Вы раньше нормально отвечали. Хоть вы меня спасите от этого бесполезного снобистского трепа.

    Вы поняли задачу? Если это так просто, буду искать. Но если это просто, так почему бы не написать быстро одной строкой? Я вчера уже все перепробывал...
     
  14. Goofman

    Goofman Активный пользователь

    С нами с:
    18 май 2010
    Сообщения:
    24
    Симпатии:
    0
    lexa
    Так или иначе, спасибо за ценную ссылку...
     
  15. Simpliest

    Simpliest Активный пользователь

    С нами с:
    24 сен 2009
    Сообщения:
    4.511
    Симпатии:
    2
    Адрес:
    Донецк
    1.
    2.
    В зависимости от того что хотите, подойдет или первый или второй вариант.
    Что именно нужно непонятно. Потому что на старте топика говорилось одно. Потом другое.

    Более того вроде бы вопрос с ЧПУ уже был
    http://www.php.ru/forum/viewtopic.php?p=214994#214994
    И даже разобрались.
    Или нет?
     
  16. Goofman

    Goofman Активный пользователь

    С нами с:
    18 май 2010
    Сообщения:
    24
    Симпатии:
    0
    Simpliest, спасибо

    Разобрались, но в самых общих чертах.
    Redirect у меня почему-то не сработал, видимо, напутал в синтаксисе. Я поковыряю еще, сегодня просто устал уже...
    Возможно, я к тому же нечетко понимаю отличия в функционировании редирект и ModRewrite...

    Везде все то же. Задача простая и распространенная. Есть форум, допустим http://www.php.ru/. Он выдает http://www.php.ru/forum/viewtopic.php?t=25987 при запросе на эту страницу. А желательно, чтобы выдавал что-то типа
    по-англ. http://www.php.ru/how_to_work_with_htac ... writerule/ (как писать такую php-функцию перевода названия темы в названия файла -- отдельный вопрос) или лучше по-русски http://www.php.ru/как_работать_с_htaccess_RewriteRule (отсюда еще одна задача-продолжение: как кодировать кирилик в строке браузера, чтобы он читался поисковиком гугла).
    Это все задача SEO-оптимизации под гугл, должна быть давно решена по идее...