За последние 24 часа нас посетили 17842 программиста и 1700 роботов. Сейчас ищут 1533 программиста ...

mod_rewrite

Тема в разделе "PHP для новичков", создана пользователем 440Hz, 15 май 2006.

  1. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
  2. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    разрешилось

    Код (Text):
    1.  
    2. Options FollowSymlinks
    3.  
    4. RewriteEngine on
    5. RewriteBase /
    6.  
    7. RewriteCond %{HTTP_HOST}    manual\.php\.ru$
    8. RewriteRule ^(.*)$      http://php.ru/manual/$1 [R,L]
    9.  
    10. RewriteCond %{HTTP_HOST}    mysql\.php\.ru$
    11. RewriteRule ^(.*)$      http://php.ru/mysql/$1  [R,L]
     
  3. olo

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

    С нами с:
    28 апр 2006
    Сообщения:
    272
    Симпатии:
    0
    Приятно поговорить с умным человеком! ;)
     
  4. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    ЖЖОШ!

    +1
     
  5. NETmonster

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

    С нами с:
    7 мар 2006
    Сообщения:
    3
    Симпатии:
    0
    А как сделать, чтобы по адресу
    http://*.site.ru/mumu.html была видна страница http://site.ru/*/mumu.html без редиректа на этот адрес?
    Думал, думал, пробовал и так и сяк, но никак не выходит.
     
  6. simpson

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

    С нами с:
    11 фев 2006
    Сообщения:
    1.650
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
  7. vb

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

    С нами с:
    6 июн 2006
    Сообщения:
    911
    Симпатии:
    0
    Адрес:
    Saint-Petersburg
    старайся избегать правил с .* - это часто приводит к тупняку апача.
     
  8. PHPgeek

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

    С нами с:
    17 июл 2007
    Сообщения:
    18
    Симпатии:
    0

    Спасибо огромное за этот топик, а как сделать такое

    http://test.ru/user1/ -> http://user1.test.ru/
    http://test.ru/user2/ -> http://user2.test.ru/
    ...

    просто нет возможности создавать неограниченное количество субдоменов на хосте
     
  9. simpson

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

    С нами с:
    11 фев 2006
    Сообщения:
    1.650
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
  10. PHPgeek

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

    С нами с:
    17 июл 2007
    Сообщения:
    18
    Симпатии:
    0
    Спасибо, но я уже читал этот раздел, даже на русском есть и все равно не понятно, вот http://www.egoroff.spb.ru/portfolio/apa ... guide.html

    Учитывая что у меня не собственный хост, такие манипуляции с чужим сервером думаю просто не реальны. Хотя это только предположение.

    Если можно привести тут пример по моему вопросу? Благодарю заранее! :oops:
     
  11. Rollyz

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

    С нами с:
    4 июл 2007
    Сообщения:
    87
    Симпатии:
    0
    помогите разобраться! вот такой вот вопрос:
    Так работает!
    Код (Text):
    1. RewriteRule ^genre-Techno/([0-9]+)?$ default.php?pgm=g&g=Techno&page=$1 [L]
    Но мне нужно так! а так никого результата не дает...
    А именно мне нужно так потому, что переменую g=$1 я тоже задаю..
    Хотя можно сделать все вручную по первому примеру все росписать.. но это долго и много и глупо!
    Код (Text):
    1. RewriteRule ^genre-([A-Za-z0-9-_()\s]+)/([0-9]+)?$ default.php?pgm=g&g=$1&page=$1 [L]
    подскажите что я не правельно сделал

    default.php?pgm=g&g=Techno&page=1 <-- ссылка работает как надо..а ЧПУ не слушает =(
     
  12. PHPgeek

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

    С нами с:
    17 июл 2007
    Сообщения:
    18
    Симпатии:
    0
    Ответье мне пожалуйста, если допустим есть ссыла

    www.example.com/?a=1&b=2&c=3

    допустим mod_rewrite преобразует адрес в

    www.example.com/1/2/3/


    ну даа, красиво, а толку то?

    А если поисковик добавит себе в каталог эту ссылку www.example.com/1/2/3/

    поймет ли мой сайт этот запрос потом?
    Не пойму никак как это работает.
     
  13. Петр

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

    С нами с:
    20 мар 2006
    Сообщения:
    1.253
    Симпатии:
    0
    Адрес:
    Центр Вселенной
    Если правила останутся теми же - поймет.

    В данном случае мы запрашиваем некий адрес site.ru/1/2/3.
    Апач, видя это, проверяет, подпадает ли данный запрос под одно из правил,
    и, если подпадает, то преобразует к виду ?a=1&b2&c=3 (или к тому виду, которое указано в правиле),
    в противном случае ищет файл по запрошенному адресу.
     
  14. PHPgeek

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

    С нами с:
    17 июл 2007
    Сообщения:
    18
    Симпатии:
    0
    ясно, получается если вызвается адрес site.ru/1/2/3

    то Апач преобразовует адрес обратно в site.ru/?a=1&b2&c=3 но внутри системы?
    т.е. в броузере строка не измениться, останется site.ru/1/2/3
    измениться только для PHP скриптов?
     
  15. Anonymous

    Anonymous Guest

  16. eduha

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

    С нами с:
    8 ноя 2006
    Сообщения:
    278
    Симпатии:
    0
    Адрес:
    Караганда
    Скобки экранировать надо. И знак "-" переместить к ]
    ^genre-([A-Za-z0-9_\(\)\s-]+)/([0-9]+)?$
     
  17. PHPgeek

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

    С нами с:
    17 июл 2007
    Сообщения:
    18
    Симпатии:
    0
  18. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    вс настргойках зона указываешь

    *.domain.ru -> IP

    далее на уровне скрипта разруливаешь по какому поддомену пришли и рулишь как надо
     
  19. PHPgeek

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

    С нами с:
    17 июл 2007
    Сообщения:
    18
    Симпатии:
    0
    Спасибо! :)

    в настройках всмысле в в файле .htaccess?

    *.domain.ru -> IP ?

    я не особо знаком с mod_rewrite, вы не могли бы привести примерчик, Оч Прошу :)
     
  20. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    нет. на уровне зоны.
    апач тут не причем.
     
  21. PHPgeek

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

    С нами с:
    17 июл 2007
    Сообщения:
    18
    Симпатии:
    0
    Даже незнаю, что спросить еще чтобы еще более не выглядеть глупым.
    Если бы был пример, я бы по нему смог бы разобраться в остальныз вопросах, а так у меня полная муть в голове, зоны, разруливание скриптом и тд.

    видимо много прошу :(
     
  22. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    у тебя есть домен и хостинг?
    какие и у кого?
     
  23. PHPgeek

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

    С нами с:
    17 июл 2007
    Сообщения:
    18
    Симпатии:
    0
  24. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    во где-то тут должно быть меню управления доменом и поддоменами. там надо прописать A запись *, тогда все субдомены пойдут на главный сайт, а там уже в скрипте в переменных $_SERVER[] будет видно какой хост запрашивается
     
  25. PHPgeek

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

    С нами с:
    17 июл 2007
    Сообщения:
    18
    Симпатии:
    0
    открыл панел управления доменами там ссылки

    Modify Auto-Renewal - Configure settings when to renew or not to renew.
    Modify Contact - Information Publicly Available via the WHOIS Servers. (You may Enable BlueHost.Com Privacy for FREE.)
    Modify Name Servers - Change the Name Servers for where the domain is hosted or delegated to.
    Set Domain Locking - LOCK the domain to prevent it from being transfered to another Registrar.
    Modify Password - This password is used to login or make changes to the domain.
    View EPP code - Obtain EPP auth code needed for transferring some types of domains.

    Тут негде прописывать такое :(