Назад | Перейти на главную страницу

Доступ к сайту с префиксом WWW приводит к ошибке внутреннего сервера 500!

Я перешел на новый сервер, и когда я пытаюсь использовать свой сайт с префиксом www, я получаю внутреннюю ошибку сервера 500. Это прекрасно работает на моем предыдущем хосте. Вот фрагмент файла htaccess, который ссылается на www - нигде еще он не ссылается на www.

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^blog/ - [L]
RewriteCond %{HTTP_HOST} ^www\.mydomain\.com$ [NC]
RewriteRule ^(.*)$ http://mydomain.com/$1
RewriteRule ^search/(.*)/(.*)/(.*)/(.*) /search.php?searchfor=$1&sortby=$2&page=$3&searchterm=$4
RewriteRule ^confirmemail/(.*) /confirmemail.php?code=$1
RewriteRule ^resetpassword/(.*) /resetpassword.php?code=$1
RewriteRule ^resendconfirmation/(.*) /resendconfirmation.php?userid=$1
RewriteRule ^categories/ /categories.php
RewriteRule ^([-_~*a-zA-Z0-9]+)(\/)?$ /memberprofile.php?username=$1
RewriteRule ^browse/audios/(.*)/(.*)/(.*)/(.*) /audios.php?sortby=$1&filter=$2&page=$3&title=$4
RewriteRule ^browse/categories/audios/(.*)/(.*)/(.*)/(.*) /categoryaudios.php?sortby=$1&filter=$2&page=$3&title=$4
RewriteRule ^audios/(.*)/(.*) /playaudio.php?audioid=$1&title=$2
RewriteRule ^download/audio/(.*)/(.*) /downloadaudio.php?AUDIOID=$1&title=$2
RewriteRule ^members/audios/(.*)/(.*) /memberaudios.php?pid=$1&username=$2
RewriteRule ^syndicate/audios/(.*)/(.*) /syndicateaudios.php?filter=$1&title=$2
</IfModule>

Что еще можно проверить?

Я настроил этот домен с помощью Панели управления Plesk - может быть, в этом проблема?

Спасибо всем за любую помощь

Обновить

Журналы ошибок показывают это, когда я захожу на свой сайт с префиксом www.

[Ср, 8 сентября, 13:57:24 2010] [ошибка] [клиент xx.xxx.xx.xxx] Запрос превысил ограничение в 10 внутренних перенаправлений из-за возможной ошибки конфигурации. При необходимости используйте LimitInternalRecursion, чтобы увеличить лимит. Используйте «Отладка LogLevel», чтобы получить трассировку.

Обновление 2

У моего сайта есть псевдоним сервера в файле httpd.conf формы serverAlias www.mydomain.com - может ли это вызвать цикл перенаправления?

Обновление 3

Мне не удалось заставить apache создать или записать в журнал перезаписи, и я не хочу перезапускать слишком много сервисов, так как сайт используют люди.

Я добавил награду за этот вопрос, так как мне действительно нужна помощь!

Это интересно, потому что в журналах указано, что происходит перенаправление, но у вас нет правил, использующих флаг [R]. Однако, когда правило включает http: // ... флаг [R] является избыточным, поэтому

RewriteRule ^(.*)$ http://mydomain.com/$1

Правило - вероятный кандидат на причину проблемы.

На вашем месте я бы попытался поместить [R = 301, L] в конец этой строки, чтобы убедиться, что другие правила каким-то образом не используют предыдущее имя хоста, что каким-то образом приводит к возникновению цикла.

Другая возможность заключается в том, что PHP участвует в цикле перенаправления. Можете ли вы получить доступ к сайту www с помощью Firefox и плагина livehttpheaders и поделиться здесь заголовками? Это может пролить свет на то, что вызывает цикл перенаправления.

Я не думаю, что участие Plesk имеет к этому какое-либо отношение, и нет, я не думаю, что ServerAlias ​​имеет к этому какое-то отношение. Это позволяет использовать одну и ту же конфигурацию для обоих виртуальных хостов: www.example.com и example.com.

Надеюсь, это поможет!

Как насчет:

<IfModule mod_rewrite.c>
RewriteEngine On
ReWriteCond %{HTTP_HOST} !^mydomain
ReWriteRule ^(.*)$ http://mydomain.com/$1
...
</IfModule>

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

В большинстве случаев это правило повторного входа.