mod_rewrite .htaccess при вызовах AJAX, выдающих ошибки

Я разрабатываю новый сайт для церкви. Старый домен: chippingcampdenbaptistchurch.org.uk Новый домен: campdenbaptist.org.uk

Домен campdenbaptist.org.uk является дополнительным доменом к общему серверу Linux. Внутри папки находится следующий файл .htaccess:

RewriteEngine On
RewriteRule !^(dev(/.*)?|www\.chippingcampdenbaptistchurch\.org\.uk)$ http://www.chippingcampdenbaptistchurch.org.uk/ [R,L]

По сути, если пользователь запрашивает ТОЛЬКО campdenbaptist.org.uk, он будет отправлен на старый сайт (живущий на другом сервере по адресу www.chippingcampdenbaptistchurch.org.uk). НО если просят на campdenbaptist.org.uk/dev - то отправляются в папку /dev где живет новый сайт.

Он работает на Concrete5 (http://www.concrete5.org/) и .htaccess внутри этого /dev папка выглядит так:

SetEnv TZ Europe/London

<IfModule mod_rewrite.c>

RewriteEngine On

#=============WWW. REDIRECT===========#
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/dev/$1 [R=301,L]

#=============C5 REDIRECT===========#
RewriteBase /dev/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}/index.html !-f
RewriteCond %{REQUEST_FILENAME}/index.php !-f
RewriteRule . index.php [L]

</IfModule>

Он в основном проверяет, является ли адрес www. есть (а если нет, добавьте его) И имеет дело с красивыми URL-адресами в блоке «Перенаправление C5».

Проблема, с которой я сталкиваюсь, заключается в том, что иногда сервер выдает ошибки (перенаправляет на старый сайт) для вызовов AJAX, например следующие два:

http://www.campdenbaptist.org.uk/dev/tools/blocks/booking_form/snag_dates.php?1=1&date=03/16/2013&page=272

(если вы измените 1 = 1 в первой части строки запроса на что-то вроде a = 1, это выглядит нормально ?!) - или

http://www.campdenbaptist.org.uk/dev/tools/required/files/importers/remote?_returntype=text&fIDW&task=update_file&url_upload_1=http%3A%2F%2Ffeatherfiles.aviary.com%2F2012-11-26%2F1d6b111bd5684978a293e193828a181a.jpg&ccm_token53952089%3A5ec7e1b4c88c7e62ba9f5da66b36cef0

Любые идеи? Похоже, что если вы удалите строки запроса из обоих вышеуказанных вызовов, ошибка не возникнет. Спасибо большое!


person Harvey Appleton    schedule 26.11.2012    source источник
comment
Существуют ли какие-либо перенаправления заголовков внутри snag_dates.php или любых php-файлов, которые он может включать? Попробуйте закомментировать или удалить ваши файлы htaccess и посмотреть, ведет ли он себя таким образом, чтобы убедиться, что htaccess действительно является виновником. Сначала очистите кеш браузера, чтобы убедиться, что он не хранит перенаправления, как это иногда бывает.   -  person WebChemist    schedule 27.11.2012
comment
Спасибо за советы, все перепробовал, но безрезультатно. Что-то действительно странное здесь. Если вы перейдете к: http://www.campdenbaptist.org.uk/dev/tools/blocks/booking_form/snag_dates.php?1=1&date=03/16/2013&page=272 или http://www.campdenbaptist.org.uk/dev/tools/blocks/booking_form/snag_dates.php?a=1&date=03/16/2013&page=272, результат будет варьироваться между запрещенным и возвратом для простой замены 1=1 на a=1 — как странно! (Я избавился от перенаправления htaccess на старый адрес сайта, теперь это просто index.php с заголовком (Расположение: chippingcampdenbaptistchurch.org.uk), поэтому я могу видеть страницы ошибок.   -  person Harvey Appleton    schedule 27.11.2012
comment
Я попробовал это с несколькими строками запроса, и это не просто 1 = 1, это казалось любым (числовой ключ) = (числовое значение). Я только что попробовал еще раз, и в течение минуты или двух 1 = 1 не перенаправлял (200 OK), но затем он просто начал выдавать 403, так что я предполагаю, что вы все еще тестируете?   -  person WebChemist    schedule 27.11.2012
comment
Привет, да, извините, мне надоело перенаправление, поэтому вместо перенаправления htaccess на старый сайт теперь это просто файл index.php с перенаправлением заголовка (Location:...), поэтому вместо этого мы можем видеть ошибки. См. комментарий, который я разместил ниже ссылка для получения дополнительной информации!   -  person Harvey Appleton    schedule 27.11.2012
comment
И точно так же с точкой или без нее в конце получается 403 или 200 соответственно! http://www.campdenbaptist.org.uk/dev/index.php/tools/required/files/importers/remote?_returntype=text&fIDW&task=update_file&url_upload_1=http%3A%2F%2Ffeatherfiles.   -  person Harvey Appleton    schedule 27.11.2012


Ответы (2)


Звучит как жестко запрограммированное перенаправление в одном из ваших php-файлов, которое проверяет 1 в строке запроса или, возможно, переменную конфигурации для адреса сайта, который необходимо изменить.

person Adam Spence    schedule 26.11.2012
comment
Кажется, это не так, если вы возьмете последний вызов ajax, который я изначально опубликовал, и попробуете его, он покажет 403 запрещено. Если вы удаляете до точки непосредственно перед точкой в ​​строке запроса перофайлы.авиари.com, это нормально ?? http://www.campdenbaptist.org.uk/dev/tools/required/files/importers/remote?_returntype=text&fIDW&task=update_file&url_upload_1=http%3A%2F%2Ffeatherfiles - работает! но полная строка запроса с . не кажется. Аналогично изменение 1=1 на a=1 в первом примере заставляет это работать? - person Harvey Appleton; 27.11.2012
comment
поэтому, если текст «chippingcampdenbaptistchurch.org.uk» нигде в вашей кодовой базе не появляется, то, думаю, это не проблема. Следующее, на что стоит обратить внимание, — это кэширование. Какое кэширование у вас на месте? - person Adam Spence; 27.11.2012
comment
Судя по всему, это не проблема .htaccess. Отключены красивые URL-адреса (кстати, нет кэширования), и вот прямая ссылка на файл index.php, который затем обрабатывает оставшуюся часть /query/string/like/this http://www.campdenbaptist.org.uk/dev/index.php/tools/blocks/booking_form/snag_dates.php?1=1&date=03/16/2013&page=272 И это выдает ошибку. Должна быть проблема с PHP, вызывающая запрещенную ошибку, когда она 1 = 1, но не a = 1? или а=2? Очень странный... - person Harvey Appleton; 27.11.2012

К сожалению, это была ошибка mod_sec, вызванная хостинг-провайдером. 1=1 теперь исправлено, и сейчас они работают над проблемой .aviary.com. Спасибо, в любом случае!

person Harvey Appleton    schedule 26.11.2012