Xlam
Новичок
Как заменить связку Action и AddHandler на директивы mod_rewrite?
Надо, чтобы при вводе в адресную строку адреса типа http://www.site.ru/news/3.html происходило следующее:
1) управление передавалось бы скрипту /index.php
2) при этом переменная REQUEST_URI содержала бы /news/3.html
3) в адресной строке сохранился бы исходный адрес запроса http://www.site.ru/news/3.html
Для решения поставленной задачи очень удобно было использовать связку Action и AddHandler в .htaccess:
Action allhandler /index.php?
AddHandler allhandler .html
Все работало отлично, пока хостинг не поломали. Админы переустановили apache (был 1.33, посставили 2.0.54). Теперь на адреса вроде http://www.site.ru/news/3.html сервер выдает 404 Not Found. Что правильно, ведь на самом деле таких html файлов нет и информация берется из базы на остнове REQUEST_URI. Сначала думал не обрабатывается .htaccess. Достал конфиги апача, вроде бы все как надо:
AccessFileName .htaccess
<VirtualHost www.site.ru>
ErrorDocument 404 /404.htm
DocumentRoot /sites/www.site.ru
ServerName www.site.ru
DirectoryIndex index.htm index.html index.php index.pl index.php3
<Directory "/sites/www.site.ru">
Options Includes FollowSymLinks
AllowOverride AuthConfig Limit FileInfo
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Имя .htaccess не изменено. AllowOverride FileInfo для каталога сайта прописано, значит Action и AddHandler должны работать (даже проверил загружены ли соотв. модули), ан нет! В чем же дело? Я так и не разобрался.
Ну чтож, сайт надо как-то возвращать в работоспособное состояние. Возникло желание обойти проблему с помощью mod_rewrite, копание в доке и несколько неудачных попыток ничего не дали.
Подскажите нужные директивы mod_rewrite?
Надо, чтобы при вводе в адресную строку адреса типа http://www.site.ru/news/3.html происходило следующее:
1) управление передавалось бы скрипту /index.php
2) при этом переменная REQUEST_URI содержала бы /news/3.html
3) в адресной строке сохранился бы исходный адрес запроса http://www.site.ru/news/3.html
Для решения поставленной задачи очень удобно было использовать связку Action и AddHandler в .htaccess:
Action allhandler /index.php?
AddHandler allhandler .html
Все работало отлично, пока хостинг не поломали. Админы переустановили apache (был 1.33, посставили 2.0.54). Теперь на адреса вроде http://www.site.ru/news/3.html сервер выдает 404 Not Found. Что правильно, ведь на самом деле таких html файлов нет и информация берется из базы на остнове REQUEST_URI. Сначала думал не обрабатывается .htaccess. Достал конфиги апача, вроде бы все как надо:
AccessFileName .htaccess
<VirtualHost www.site.ru>
ErrorDocument 404 /404.htm
DocumentRoot /sites/www.site.ru
ServerName www.site.ru
DirectoryIndex index.htm index.html index.php index.pl index.php3
<Directory "/sites/www.site.ru">
Options Includes FollowSymLinks
AllowOverride AuthConfig Limit FileInfo
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Имя .htaccess не изменено. AllowOverride FileInfo для каталога сайта прописано, значит Action и AddHandler должны работать (даже проверил загружены ли соотв. модули), ан нет! В чем же дело? Я так и не разобрался.
Ну чтож, сайт надо как-то возвращать в работоспособное состояние. Возникло желание обойти проблему с помощью mod_rewrite, копание в доке и несколько неудачных попыток ничего не дали.
Подскажите нужные директивы mod_rewrite?