За последние 24 часа нас посетили 17598 программистов и 1722 робота. Сейчас ищут 923 программиста ...

все настроенно а mod_rewrite не работает

Тема в разделе "PHP для новичков", создана пользователем MAXiDROM, 15 фев 2008.

  1. MAXiDROM

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

    С нами с:
    15 фев 2008
    Сообщения:
    34
    Симпатии:
    0
    проблема в том что я все настроил, много исходников перебрал и мануалов.
    кажется все норм. сделал. сайт грузится а вот RewriteRule не работает
    Код (Text):
    1.  
    2. RewriteEngine on
    3. Options +FollowSymLinks
    4. RewriteRule ^.htaccess$ - [F]
    5. RewriteRule ^([a-z]+)/?$  index.php?page=$1
    Код (Text):
    1.  
    2. httpd.conf
    3. LoadModule rewrite_module modules/mod_rewrite.so
    4.  
    5. <Directory "/home/admin/www/">
    6.   Options Indexes Includes
    7.     AllowOverride All
    8.     Order allow,deny
    9.     Allow from all
    10. </Directory>
    11.  
    12. AccessFileName .htaccess
    13.  
    14. <Files ~ "^\.ht">
    15.     Order allow,deny
    16.     Deny from all
    17. </Files>
    в браузере отображается
    Код (Text):
    1. http://site.ru/index.php?page=news
    и сайт нормально работает
     
  2. Anonymous

    Anonymous Guest

    рады за вас. Проблема в чем?
     
  3. MAXiDROM

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

    С нами с:
    15 фев 2008
    Сообщения:
    34
    Симпатии:
    0
    :)
    проблема в том что
    надо
    Код (Text):
    1. http://site.ru/news/
    а у меня
    Код (Text):
    1. http://site.ru/index.php?page=news
     
  4. Anonymous

    Anonymous Guest

    Ага. И?
    Вы полагаете, ЧПУ чудесным образом заработает само?
    Или все же для его работы надо не только настроить сервер, но и написать логику работы?
     
  5. MAXiDROM

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

    С нами с:
    15 фев 2008
    Сообщения:
    34
    Симпатии:
    0
    или чтото я не допонил или помимо прописи в htaccess'e надо еще куча прописей в других местах?
     
  6. RomanBush

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

    С нами с:
    5 дек 2007
    Сообщения:
    798
    Симпатии:
    0
    Адрес:
    200 км от Москвы
    Ссылки-то кто у тебя генерирует? Файл .htaccess - он только обрабатывает ссылки, которые уже пришли. А вот генерацией ссылок кто занимается? Вот там и надо менять.
     
  7. nimistar

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

    С нами с:
    30 май 2007
    Сообщения:
    919
    Симпатии:
    0
    хз ! реврайтит ли реврайт .. потому каr он предназначен для превращения из http://site.ru/news/ в http://site.ru/index.php?page=news :D


    а вот отображения вида http://site.ru/news/ отвечает
    Код (Text):
    1. <a href="/news/">link</a>
     
  8. MAXiDROM

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

    С нами с:
    15 фев 2008
    Сообщения:
    34
    Симпатии:
    0
    т.е. мне нужно сначало переписать news.php, чтоб там ссылки были чарез "/"
    а потом спомощью htaccess'a мы его разбираем на $_GET[] состовляющие.

    в index.php есть ссылка site.ru/news/
    htaccess его превращает в index.php?page=news
    и потом news.php обрабативыает его?
     
  9. Sergey89

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

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
  10. nimistar

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

    С нами с:
    30 май 2007
    Сообщения:
    919
    Симпатии:
    0
    не-а!

    смотря откуда ссылка :) .. если у тя все в индексе .. то нафиг тебе ньюс ?

    указываешь ньюс ... а реврайтится в запрос к индексу
     
  11. RomanBush

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

    С нами с:
    5 дек 2007
    Сообщения:
    798
    Симпатии:
    0
    Адрес:
    200 км от Москвы
    Почему это? Общий алгоритм он правильно понял. А с ошибками - сейчас начнёт разбираться - сам увидит.
     
  12. MAXiDROM

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

    С нами с:
    15 фев 2008
    Сообщения:
    34
    Симпатии:
    0
    хм. вы определитесь, или пояссните где да, а где нет
     
  13. nimistar

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

    С нами с:
    30 май 2007
    Сообщения:
    919
    Симпатии:
    0
    дополнил ответ .. такое впечетление что я че-то непонял
     
  14. MAXiDROM

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

    С нами с:
    15 фев 2008
    Сообщения:
    34
    Симпатии:
    0
    мне нужно понять, сам логоритм написания.

    я хочу создать юзербар, у него есть свой индекс. но у него есть в url php запросы (?s=p$id=123)
    мне его нужно переделать в (/p/123.jpg) т.к. у форумов в подписи, есть защита от php запросов.
    А вот ссылка на картинку проходит!
     
  15. nimistar

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

    С нами с:
    30 май 2007
    Сообщения:
    919
    Симпатии:
    0
    например :
    есть index.php
    и есть запрос к нему index.php?s=p&id=123

    благодоря реврайт ссылка <a href="/p/123">link</a>
    может выглядеть ДЛЯ СЕРВЕРА как index.php?s=p&id=123

    но в браузер всетаки надо записывать <a href="/p/123">link</a>
    чтобы в адресной строке его было то что ты хочешь !



    Код (Text):
    1.  
    2.   RewriteEngine on
    3.   RewriteCond %{REQUEST_FILENAME} !-f
    4.   RewriteCond %{REQUEST_FILENAME} !-d
    5.   RewriteRule ^([^/]*)/([^/]*)$ index.php?s=$1&id=$2 [L,QSA]  <-- гуру поправте если не так .. непомню точно синтаксис!
    Пригодится ;-)
     
  16. MAXiDROM

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

    С нами с:
    15 фев 2008
    Сообщения:
    34
    Симпатии:
    0
    Код (Text):
    1. RewriteCond %{REQUEST_FILENAME} !-f
    на скоко я понял, ето игнорирования, а хотя потом пойму.

    Код (Text):
    1. ^([^/]*)/([^/]*)$
    Код (Text):
    1. ^(.*)/(.*)$
    не пойдет?
     
  17. RomanBush

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

    С нами с:
    5 дек 2007
    Сообщения:
    798
    Симпатии:
    0
    Адрес:
    200 км от Москвы
    В двух словах.
    Твой скрипт генерирует ссылки. В данный момент - назовём их "php-обрАзные". (?s=p$id=123)
    Далее - юзер тыкает на эту ссылку. В результате его тыканья получается http-запрос. Этот запрос идёт на сервер, там язык php его "понимает", разбирает и что-то делает.
    Как это будет выглядеть с mod_rewrite:
    Твой скрипт генерирует ссылки. В виде (/p/123.jpg). Никаким php в этих сслылках и не пахнет. Поэтому, если эти ссылки отдать серверу, на котором нет mod_rewrite, то он попытается найти папку "/p/", а в этой папке найти файл "123.jpg".
    А вот если на сервере стоит mod_rewrite, то, когда запрос пойдет от юзера, то этот mod_rewrite подхватит этот запрос и обработает. В результате его работы запрос самому серверу отдастся в виде (?s=p$id=123), и дальше, как обычно, поедет на обработку php-модулю.

    Так понятен механизм? Немного утрированно, зато просто.
     
  18. MAXiDROM

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

    С нами с:
    15 фев 2008
    Сообщения:
    34
    Симпатии:
    0
    :p пережевали, ну теперь можно и проглотить.

    Спасибо всем. Пойду мучить свой сайт. Если не получиться, то сгрызу комп, и буду спокойным смотреть теле-сериалы :D


    З.Ы. у вас есть тут мануальчик про ето, киньте етот текст, возможно кому то так же поможет.
     
  19. RomanBush

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

    С нами с:
    5 дек 2007
    Сообщения:
    798
    Симпатии:
    0
    Адрес:
    200 км от Москвы
    если б был - я бы тебе и дал ссылку, а не своими словами описывал.
    2All:
    Мож кто из старших товарищей подкинет ссылку?
     
  20. RomanBush

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

    С нами с:
    5 дек 2007
    Сообщения:
    798
    Симпатии:
    0
    Адрес:
    200 км от Москвы
    Не надо. Лучше ещё раз здесь спроси. А туда, к баранам, мы всегда успеем. :)
     
  21. 440Hz

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

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    [L,QSA,NC]
     
  22. AlexGousev

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

    С нами с:
    25 мар 2006
    Сообщения:
    1.505
    Симпатии:
    0
    Адрес:
    Москва