За последние 24 часа нас посетили 55305 программистов и 1725 роботов. Сейчас ищут 1130 программистов ...

Не работает ЧПУ mod_rewrite

Тема в разделе "PHP для новичков", создана пользователем zevilz, 8 июл 2012.

  1. zevilz

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

    С нами с:
    14 июн 2010
    Сообщения:
    182
    Симпатии:
    0
    mod_rewrite включен и работает, но не происходит переименование url'ов
    Код (Text):
    1.  
    2. RewriteEngine On
    3. RewriteBase /
    4. RewriteRule ^video/([^/]+)/?$ view_video.php?id=$1
    Где косяк?
     
  2. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    А у тебя точно mod_rewrite включен?

    Я вот проверил, у меня твой вариант работает...
     
  3. zevilz

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

    С нами с:
    14 июн 2010
    Сообщения:
    182
    Симпатии:
    0
    /etc/apache2/sites-available/kenny.zz:
    Код (Text):
    1. <VirtualHost *:80>
    2.   ServerAlias kenny.zz www.kenny.zz
    3.   DocumentRoot /media/Data/WebServer/kenny.zz
    4.   <Directory media/Data/WebServer/kenny.zz/>
    5.     AllowOverride All
    6.   </Directory>
    7. </VirtualHost>
    Код (Text):
    1.  sudo a2enmod rewrite
    2. Module rewrite already enabled
    httpd.conf пустой
     
  4. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    Может попробовать апач перегрузить?
     
  5. zevilz

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

    С нами с:
    14 июн 2010
    Сообщения:
    182
    Симпатии:
    0
    перезагружал уже не раз
     
  6. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    А опиши поподробнее, как ты понимаешь переименование url-ов? Что должно происходить, но чего не происходит?
     
  7. zevilz

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

    С нами с:
    14 июн 2010
    Сообщения:
    182
    Симпатии:
    0
    если id видео равен 13, то:
    view_video.php?id=13 переименовывается в video/13
    но у меня этого не происходит
     
  8. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    Немного не то. Короче, попробую высказать своё предположение:
    Может быть ты думаешь, что если взять и перейти в браузере по адресу
    view_video.php?id=13
    то в результате работы mod_rewrite этот адрес в адресной строке браузера вдруг изменится и станет
    video/13
    ?
     
  9. zevilz

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

    С нами с:
    14 июн 2010
    Сообщения:
    182
    Симпатии:
    0
    я что то не так понял? только разбираюсь
     
  10. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    В адресной строке ничего меняться не будет. mod_rewrite делает другое.
    Ссылки ты должен сам генерировать такие, как ты хочешь видеть. То есть так и писать на страницах сайта:
    Код (Text):
    1. <a href="video/13">смотреть ролик</a>
    (ну, или генерировать ссылки такого вида в PHP скриптах).
    mod_rewrite произведёт обратное преобразование. То есть клиент нажал на ссылку
    video/13
    в адресной строке браузера отображается
    video/13
    на сервер ушёл запрос
    video/13
    тут включился mod_rewrite (уже на сервере, клиент о нём вообще ничего не знает), посмотрел правило, которое ты ему написал - и понял, что нужно обработать этот запрос так, как будто браузер запросил
    view_video.php?id=13
    - то есть запустить скрипт view_video.php и передать ему как GET-параметр id=13
     
  11. zevilz

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

    С нами с:
    14 июн 2010
    Сообщения:
    182
    Симпатии:
    0
    Спасибо большое. Разобрался. Все оказывается работает. Я то думал mod_rewrite автоматом переписывает все ссылки, которые есть в правилах .htaccess