500.0 Ошибка сервера перезаписи при публикации формы

Сервер Windows 2008 R2 с PHP 5.3.

У меня есть URL Rewrite для IIS, работающий на нашем сайте.

Переписывание такое:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="Imported Rule 1" stopProcessing="true">
                    <match url="^(.*)$" ignoreCase="false" />
                    <conditions logicalGrouping="MatchAll">
                        <add input="{R:1}" pattern="^(images|documents|system|themes|favicon\.ico|robots\.txt|index\.php)" negate="true" />
                    </conditions>
                    <action type="Rewrite" url="/index.php/{R:1}" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

Все страницы (domain.com/contact) работают нормально. Но при отправке формы я получаю ошибку сервера 500.0... которая, по словам MSFT, связана с ошибками перезаписи или модуля.

Я установил Fiddler, и заголовки Raw Request в TextView выглядят так

POST http://stage.domain.edu/ HTTP/1.1
Accept: image/jpeg, image/gif, image/pjpeg, application/x-ms-application, application/xaml+xml, application/x-ms-xbap
Referer: http://stage.domain.edu/contact
Accept-Language: en-US
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET4.0C; .NET4.0E)
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
Host: stage.domain.edu
Content-Length: 519
Connection: Keep-Alive
Pragma: no-cache
Cookie: exp_last_visit=978203019; exp_last_activity=1293563019; exp_tracker=a%3A5%3A%7Bi%3A0%3Bs%3A7%3A%22contact%22%3Bi%3A1%3Bs%3A5%3A%22index%22%3Bi%3A2%3Bs%3A7%3A%22contact%22%3Bi%3A3%3Bs%3A5%3A%22index%22%3Bi%3A4%3Bs%3A7%3A%22contact%22%3B%7D; exp_last_visit=1293563019; exp_last_activity=1294854559

ACT=27&RET=&URI=contact&recipients=HJAUumiTKThex9cAcYNq%2FyBQNLeXkIqACdl3EgaimNM%3D&user_recipients=7f73421623ceb94b5d06abe41d8663dd&charset=&redirect=&replyto=&site_id=2&subject=Contact+Form&[email protected]&required%5B%5D=Full+Name%3A&required%5B%5D=stephanie&required%5B%5D=Phone%3A&required%5B%5D=954520-1176&sender=E-mail%3A&[email protected]&required%5B%5D=Zip+Code%3A&required%5B%5D=33073&message=This+information+was+submitted+via+the+contact+form.&submit.x=72&submit.y=14

Что здесь может привести к отправке переменных в основной файл index.php на 500?


person Steph Rose    schedule 12.01.2011    source источник
comment
Что-нибудь в журнале ошибок сервера? Там должно быть больше подробностей.   -  person Marc B    schedule 12.01.2011
comment
Вот что отображается в журнале ошибок для этого вызова: 2011-01-12 17:51:04 10.64.181.170 POST / - 80 - 10.64.181.170 Mozilla/4.0+(совместимый;+MSIE+8.0;+Windows+NT +6.1;+WOW64;+Trident/4.0;+SLCC2;+.NET+CLR+2.0.50727;+.NET4.0C;+.NET4.0E) 500 0 258 94534   -  person Steph Rose    schedule 12.01.2011
comment
В журнале PHP ничего нет.   -  person Steph Rose    schedule 12.01.2011


Ответы (1)


Просто для завершения, проблема заключалась в том, что сервер выдавал 500 ошибок, если что-то было не так, а в CMS было 2 проблемы:

1) Мне нужно было правильно настроить конфигурацию SMTP

Тогда я просто получил пустую страницу.

2) Происходило то, что CMS использует /n в электронных письмах как новую строку, а в окнах Windows эквивалентом новой строки является /r/n.... поэтому после изменения этого в конфигурации электронной почты HTML все работало нормально!

person Steph Rose    schedule 09.02.2011