Chertenok.ru - все о программировании
Вход  |  Регистрация  |  Поиск 
Праздник
Сегодня :

День славянской письменности и культуры


mod_rewrite Апача


Новая тема  Ответить  Печать Предыдущая тема  Следующая тема
Автор Сообщение
Пол:Муж dogma
aka Достоевский


Возраст: 27
Знак зодиака: Телец
Зарегистрирован: 20.12.2004
Сообщения: 1702
Откуда: Холмск
СообщениеЧт, 25-Дек-2008 10:46    Заголовок сообщения: mod_rewrite Апача
Цитата

Собственно интересует вопрос, почему не работают вот такие условия у нашего хостера (Мастерхост)?
RewriteEngine On

#для замещения имени форума
#Переход на категорию
RewriteRule ^.*-c(\d+)$ /index.php?c=$1 [L]

#Переход в форум
RewriteRule ^.*-f(\d+)$ /viewforum.php?f=$1 [L]

#Переход в форум
RewriteRule ^.*-f(\d+)-td(\d+)-s(\d+)$ /viewforum.php?f=$1&topicdays=$2&start=$3 [L]

#Переход в форум (пометка топиков как прочтенные)
RewriteRule ^.*-f(\d+)-m0$ /viewforum.php?f=$1&mark=topics [L]

#для замещения имени топика
RewriteRule ^.*-t(\d+)$ /viewtopic.php?t=$1 [L]

#для замещения имени топика с указанием страницы
RewriteRule ^.*-t(\d+)-s(\d+)$ /viewtopic.php?t=$1&start=$2 [L]

#для замещения имени топика с указанием страницы, порядка сортировки и дней
RewriteRule ^.*-t(\d+)-pd(\d+)-po0-s(\d+)$ /viewtopic.php?t=$1&postdays=$2&postorder=asc&start=$3 [L]
#для замещения имени топика с указанием страницы, порядка сортировки и дней
RewriteRule ^.*-t(\d+)-pd(\d+)-po1-s(\d+)$ /viewtopic.php?t=$1&postdays=$2&postorder=desc&start=$3 [L]

#для замещения имени топика с указанием newest
RewriteRule ^.*-t(\d+)-v0$ /viewtopic.php?t=$1&view=newest [L]
#для замещения имени топика с указанием next
RewriteRule ^.*-t(\d+)-v1$ /viewtopic.php?t=$1&view=next [L]
#для замещения имени топика с указанием previous
RewriteRule ^.*-t(\d+)-v2$ /viewtopic.php?t=$1&view=previous [L]

Уже и так и сяк извращался...
Все время получаю 404-ю ошибку.

_________________
Bonum initium est dimidium facti
SQL-задачи (on-line)
В начало
Посмотреть профиль Отправить личное сообщение
СообщениеВт, 20-Янв-2009 18:29 
Цитата

Надо читать первоисточник! =)
Это работает на втором апаче, а у мастерхоста 1.3 на виртуалке =) Второй апач только на VDS
Цитата:
Новая библиотека для работы с регулярными выражениями
В состав Apache 2.0 была включена библиотека для работы с Perl-совместимыми регулярными выраженями (PCRE). Все регулярные выражения теперь используют более мощный синтаксис Perl 5.
В начало
Пол:Муж dogma
aka Достоевский


Возраст: 27
Знак зодиака: Телец
Зарегистрирован: 20.12.2004
Сообщения: 1702
Откуда: Холмск
СообщениеСр, 21-Янв-2009 3:12 
Цитата

Я уже решил эту проблему; просто заменил \d на [0-9]
_________________
Bonum initium est dimidium facti
SQL-задачи (on-line)
В начало
Посмотреть профиль Отправить личное сообщение
Пол:Муж TuXAPuK
Великий гонщик

Предупреждений : 1
Возраст: 26
Знак зодиака: Рыбы
Зарегистрирован: 12.09.2005
Сообщения: 714
Откуда: Великий город Рига... =Ъ
СообщениеСб, 10-Окт-2009 19:55 
Цитата

В продолжение темы.. Интересный вопрос про MOD_REWRITE...

Можно ли сделать так что-бы после преобразования *.html в *.php апач не перезагружал запрос?

Вот к примеру правило :
Код:
RewriteRule (.*)\.php error404.php [L]
RewriteRule (.*)\.html $1.php [L]


Вот что происходит :
http://example.com/ -> index.php
http://example.com/index.html -> error404.php

А нужно :
http://example.com/index.html -> index.php

Каким образом так сделать знает кто?

pS : Немного не корректно изъясняюсь, просто не-знаю даже как спросить...

_________________
В начало
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Пол:Муж dogma
aka Достоевский


Возраст: 27
Знак зодиака: Телец
Зарегистрирован: 20.12.2004
Сообщения: 1702
Откуда: Холмск
СообщениеПн, 12-Окт-2009 2:40 
Цитата

Помойму у Апача ест параметр, который отвечает за загружаемую страницу по умолчанию.
_________________
Bonum initium est dimidium facti
SQL-задачи (on-line)
В начало
Посмотреть профиль Отправить личное сообщение
Пол:Муж Ktf
Администратор


Возраст: 32
Знак зодиака: Рак
Зарегистрирован: 15.05.2005
Сообщения: 1502
Откуда: localhost
СообщениеПн, 12-Окт-2009 5:52 
Цитата

to TuXAPuK
мне кажется перезапуска тут не избежать никак.
а что если поменять правила местами? правда тогда есть вероятность что ошибка 404 не будет обработана...

Добавлено спустя 1 минуту 22 секунды:

а не, гоню, 404 никуда не денется :)

_________________
Пойду посплю перед сном.
В начало
Посмотреть профиль Отправить личное сообщение
Пол:Муж TuXAPuK
Великий гонщик

Предупреждений : 1
Возраст: 26
Знак зодиака: Рыбы
Зарегистрирован: 12.09.2005
Сообщения: 714
Откуда: Великий город Рига... =Ъ
СообщениеПн, 12-Окт-2009 22:26 
Цитата

to Ktf
В принципе я ожидал такого ответа, не сказал-бы что я плохо знаю MOD_REWRITE, и сам много экспериментировал на эту тему...

Поэтому все решилось отключив .php и просто зарегистрировав новый тип, а потом поставить собственный обработчик 404й ошибки...

Код:
# Конфигурация сервера APACHE


# Отключаем .PHP, регестрируем .LOW
RemoveType .php
AddType text/plain .php
AddType application/x-httpd-php .low

DirectoryIndex index.low

ErrorDocument 402 /error777.low
ErrorDocument 404 /error777.low
ErrorDocument 500 /error777.low

RewriteEngine On
RewriteRule (.*)\.html$ $1.low[L]
RewriteRule (.*)\.php /error777.low [L]
RewriteRule ^syst\.* /error777.low [L]

_________________
В начало
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Показать сообщения:   
Страница 1 из 1
Перейти:  
Новая тема  Ответить  Печать

Вы можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете присоединять файлы в этом форуме
Вы можете скачивать файлы в этом форуме
хостинг от .masterhost 
Rambler's Top100