Ошибка Apache 500, переписать движок и ajax - PullRequest
0 голосов
/ 15 июля 2009

Я работал над настройкой правил перезаписи, чтобы у меня были более короткие и приятные URL, и у меня очень интересный сайт.

У меня есть правила перезаписи, работающие на сервере, и страницы загружаются с хорошими новыми URL-адресами, но, похоже, теперь весь Ajax не работает. Firefox говорит мне, что это ошибка 500.

Пытаясь загрузить страницу напрямую, я не получаю страницу «Ошибка 500», но она возвращает «3738», хотя я понятия не имею, что это значит.

Итак, я проверил логи apache и достаточно точно

GET /processes/format.php?output=queries HTTP/1.1" 500 33

проблема в том, что я понятия не имею, почему это сломано. Страница существует, поэтому я предполагаю, что это проблема с переписыванием URL-адресов?

Мое правило переписывания выглядит так

RewriteEngine On
    RewriteCond %{REQUEST_URI} !\.(php|html|css|js|gif|png|jpe?g)$
    RewriteRule (.*)$ /index.php [L]

----------------- отредактировано 1 ------------------ Итак, у меня есть журнал ошибок, и похоже, что ошибка в rewriterule не распознает

init rewrite engine with requested uri /processes/format.php 
applying pattern '(.*)$' to uri '/processes/format.php'
 RewriteCond: input='/processes/format.php' pattern='!.(php|html|css|js|gif|png|jpe?g)$' => not-matched pass through /processes/format.php 

Так что я думаю, что это ошибка с правилом перезаписи, так как! .Php должен был совпадать, если я не читаю журнал неправильно.

---------------- изменить 2 ------------------ Похоже, что это может быть ошибка в 2 части. Часть 1 JavaScript загружает 500 ошибок Часть 2 страница не выводит содержимое. Я бросил несколько эхо на страницу, и URL можно восстановить. Не уверен, откуда 3738.

Ответы [ 2 ]

2 голосов
/ 15 июля 2009

Некоторые шаги, которые могут помочь вам зафиксировать ошибку:

  • Вы пробовали страницу format.php без использования js?
  • Попробуйте включить более подробную отладку при переписывании:

    RewriteLog /var/log/apache2/rewrite.log

    RewriteLogLevel 9

RewriteLogLevel 9 чрезвычайно многословен и не предназначен для использования в производстве

Подробнее о переписывании: http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html#RewriteLog

0 голосов
/ 15 июля 2009

CRAZY !!! Я до сих пор не знаю, как и почему это происходит на моем тестовом сервере, и очень обеспокоен тем, как он будет развиваться, но теперь код работает на Prod & Test

Я думаю, что ошибка 500 очень вводит в заблуждение. Не было ошибки, но страница не возвращала содержание, которое должно иметь.

Вот что происходит.

Ссылка, которую я пытался получить, была format.php? Output = query

Теперь с PHP мне нужно получить переменную $ _GET ['output'], но я использую ту же страницу в качестве включаемой, поэтому я использую эту

if(!isset($output)){
$ouput=@$_GET['output'];
}

По какой-то причине на моем тестовом сервере выводился вывод, даже когда страница извлекалась в новом окне. Как это возможно? Это только в URL, как PHP знает, как его назначить?

В любом случае, я знаю, что на странице, которая использует format.php, есть переменная, которую я больше нигде не использую, поэтому сейчас я проверяю эту переменную. Проблема исправлена.

Как только я это сделал, страница загружается, и firebug ничего не показывает. Теперь возникает вопрос: почему Firebug интерпретировал почти пустую страницу как ошибку 500?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...