Настройка htaccess

12 3
Lord Maverik
На сайте с 15.04.2003
Offline
471
1449

В общем возникла такая ситуация, мне нужно чтобы страницы с раширением .php при запросе их из адресной строки обрабатывались своим php обработчиком.

Т.е. что то в таком духе:

RewriteRule \.php$ "/moiscript.php?%{REQUEST_URI}" [L]

Но такая строчка приводит к : Internal Server Error, что логично, так как подозреваю происходит зацикливание.

Можно както решить сию проблему?

RedMall.Ru (https://redmall.ru) - Товары из Китая (Таобао, Tmall) с проверкой качества, скидка для форумчан 7% Партнерская программа 2 уровня: 5% + 5%. Подробнее. (https://redmall.ru/about/partner/)
[umka]
На сайте с 25.05.2008
Offline
456
#1
Lord Maverik:

RewriteRule \.php$ "/moiscript.php?%{REQUEST_URI}" [L]

Но такая строчка приводит к : Internal Server Error, что логично, так как подозреваю происходит зацикливание.
Можно както решить сию проблему?

RewriteRule \.php$ moiscript.php?%{REQUEST_URI} [L]

Лог в помощь!
Lord Maverik
На сайте с 15.04.2003
Offline
471
#2
[umka:
;11867659]RewriteRule \.php$ moiscript.php?%{REQUEST_URI} [L]

спасибо помогло!

а в чем ошибка?

ведь например

RewriteRule \.html$ "/cms.php?%{REQUEST_URI}" [L]

у меня прекрасно работает для html

[umka]
На сайте с 25.05.2008
Offline
456
#3

Если целевой путь начинается на "/", то происходит редирект, и вне зависимости от [L] происходит редирект и получается

"Request exceeded the limit of 10 internal redirects due to probable configuration error."

Lord Maverik
На сайте с 15.04.2003
Offline
471
#4
[umka:
;11867746]Если целевой путь начинается на "/", то происходит редирект, и вне зависимости от [L] происходит редирект и получается
"Request exceeded the limit of 10 internal redirects due to probable configuration error."

почему-то при одном и том же htaccess на локальном сервере (Денвер) работает, на удаленном в сети нет, все таже ошибка:

Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.,

[umka]
На сайте с 25.05.2008
Offline
456
#5

Так правило-то у вас с "/" или без?

Может ещё какие-то правила мешаются? Попробуйте отключить всё лишнее.

Lord Maverik
На сайте с 15.04.2003
Offline
471
#6

Сейчас htaccess выглядит так:

RewriteEngine on

RewriteRule \.php$ cms.php?%{REQUEST_URI} [L]

На денвере работает, в сети нет.

[umka]
На сайте с 25.05.2008
Offline
456
#7

Странно, я проверяю такое же правило — работает.

Результат ни где не кэшируется?

Lord Maverik
На сайте с 15.04.2003
Offline
471
#8
[umka:
;11867815]Результат ни где не кэшируется?

нет, убираю строчку ошибка файл не найден, ставлю - ошибка Internal Server Error.

От настроек apache это как нибудь может зависеть?

[umka]
На сайте с 25.05.2008
Offline
456
#9
Lord Maverik:
нет, убираю строчку ошибка файл не найден, ставлю - ошибка Internal Server Error.
От настроек apache это как нибудь может зависеть?

Сложно сказать, что может приводить к редиректам.

Если есть возможность, попробуйте включить RewriteLog, и тогда станет ясно, что куда редиректит.

Lord Maverik
На сайте с 15.04.2003
Offline
471
#10

Очень интересный эффект:

если меняю строчку на:

RewriteRule \.php$ cms.php5?%{REQUEST_URI} [L]

при этом незабываю создать и cms.php5 то получаю ошибку:

The requested URL /var/www/****/data/www/******.com/cms.php5 was not found on this server.

---------- Добавлено 17.06.2013 в 18:19 ----------

при этом

RewriteRule \.html$ "/cms.php5?%{REQUEST_URI}" [L]

прекрасно отрабатывает

---------- Добавлено 17.06.2013 в 18:21 ----------

хм...

при внимательно рассмотрении в ошибке

в ошибке /var/www/****/data/www/www.*****.com/

конечно такого файла нет, должно быть не www.*****.com а просто *****.com, а вот как это сделать...

---------- Добавлено 17.06.2013 в 18:24 ----------

временно решил таким способом сделать:

RewriteRule \.php$ "/var/www/****/data/www/*****.com/cms.php5?%{REQUEST_URI}" [L]

так работает

12 3

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий