Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Администрирование Web серверов и Web служб > mod_rewrite перестал работать


Автор: Jema 14.12.2007, 11:40
Какая-то черная полоса.
проблема случилась этой ночью со всеми сайтами на хостинге GoDaddy.
все валится на Internal Server Error

При детальном разборе оказалось, что серверу не нравятся строки в .htaccess

Код

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]


Хотя до этого все работало. Кто сталкивался с такой проблемой??? Как поправить правила чтобы все заработало?

Полный .htaccess

Код

AddHandler x-httpd-php .php4
AddHandler x-httpd-php5 .php

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} ^wiki-images\.com$ [NC]
RewriteRule ^(.*)$ http://www.wiki-images.com/$1 [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>



Спасибо за помощь!

Автор: ZeeLax 14.12.2007, 21:16
Само по себе ничего не происходит. С провайдером консультировались - может что-то изменяли на сервере?
Логи читали?

Автор: Imple 14.12.2007, 21:29
В каждом случае, когда web-сервер выдает 500 Internal Server Error, в логе есть достаточно полная информация для администратора, почему, как и когда это случилось. Всегда обращайте внимание в первую очередь туда.

Автор: Jema 15.12.2007, 12:34
Да, в логах написано что превышено количество редиректов. Как будто этого файла не существует и происходит зацикливание.
Хостер морозится по-полной (GoDaddy),  но в одном из писам сказали что ничего не меняли (но так не может быть, все ж разом здохло).
Вобщем логи ничего ценного не несут в данном случае.

Я продолжил эксперименты.
Вместо index.php поставил index.html

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.html [L]

и собака заработала!

тогда я добавил AddHandler x-httpd-php5 .php .htm .html .phtml
а в index.html
Код

<?php
phpinfo();
?>


и оно сдохло. Какие есть идеи? Второй день лежим.......... пипец.

Кстати, при прямом обращении в файлу domen.com/index.html тожа валится ошибка, хотя условие RewriteCond %{REQUEST_FILENAME} !-f не должно выполняться. 
Если закомментировать 
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d
#RewriteRule . /index.html [L]
то все работает и открывается index.html

Автор: Source 17.1.2008, 23:48
Цитата(Jema @ 15.12.2007,  12:34)
Да, в логах написано что превышено количество редиректов. Как будто этого файла не существует и происходит зацикливание.
Хостер морозится по-полной (GoDaddy),  но в одном из писам сказали что ничего не меняли (но так не может быть, все ж разом здохло).
Вобщем логи ничего ценного не несут в данном случае.

Я продолжил эксперименты.
Вместо index.php поставил index.html

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.html [L]

и собака заработала!

тогда я добавил AddHandler x-httpd-php5 .php .htm .html .phtml
а в index.html
Код

<?php
phpinfo();
?>


и оно сдохло. Какие есть идеи? Второй день лежим.......... пипец.

Кстати, при прямом обращении в файлу domen.com/index.html тожа валится ошибка, хотя условие RewriteCond %{REQUEST_FILENAME} !-f не должно выполняться. 
Если закомментировать 
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d
#RewriteRule . /index.html [L]
то все работает и открывается index.html

А зачем ты добавил это в .htaccess?

Код

AddHandler x-httpd-php5 .php .htm .html .phtml


Там есть файл index.php или нет?

Если есть, то верни назад все как было, и залей новый index.php с кодом
Код

<?php
phpinfo();
?>
 
вместо старого...

Или я не неправильно тебя понял...  smile 

Автор: source777 17.1.2008, 23:55
А если строку "RewriteRule . /index.php [L]" убрать, что пишет? 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)