mod_rewrite включен и работает, но не происходит переименование url'ов Код (Text): RewriteEngine On RewriteBase / RewriteRule ^video/([^/]+)/?$ view_video.php?id=$1 Где косяк?
/etc/apache2/sites-available/kenny.zz: Код (Text): <VirtualHost *:80> ServerAlias kenny.zz www.kenny.zz DocumentRoot /media/Data/WebServer/kenny.zz <Directory media/Data/WebServer/kenny.zz/> AllowOverride All </Directory> </VirtualHost> Код (Text): sudo a2enmod rewrite Module rewrite already enabled httpd.conf пустой
А опиши поподробнее, как ты понимаешь переименование url-ов? Что должно происходить, но чего не происходит?
если id видео равен 13, то: view_video.php?id=13 переименовывается в video/13 но у меня этого не происходит
Немного не то. Короче, попробую высказать своё предположение: Может быть ты думаешь, что если взять и перейти в браузере по адресу view_video.php?id=13 то в результате работы mod_rewrite этот адрес в адресной строке браузера вдруг изменится и станет video/13 ?
В адресной строке ничего меняться не будет. mod_rewrite делает другое. Ссылки ты должен сам генерировать такие, как ты хочешь видеть. То есть так и писать на страницах сайта: Код (Text): <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
Спасибо большое. Разобрался. Все оказывается работает. Я то думал mod_rewrite автоматом переписывает все ссылки, которые есть в правилах .htaccess