AJAX上的mod_rewrite .htaccess调用抛出错误

时间:2012-11-26 20:00:19

标签: ajax .htaccess mod-rewrite redirect concrete5

我正在为教堂开发一个新网站。 旧域名是: 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]

基本上,如果用户要求JUST campdenbaptist.org.uk,那么他们将被发送到旧网站(住在不同的服务器上www.chippingcampdenbaptistchurch.org.uk)。但如果他们要求campdenbaptist.org.uk/dev - 那么他们会被发送到新网站所在的/ dev文件夹中。

它在Concrete5(http://www.concrete5.org/)上运行,此/ dev文件夹中的.htaccess如下所示:

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。在那里(如果没有,附加它) 并处理“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

有什么想法吗?似乎如果从上述两个调用中删除查询字符串,则不会发生错误。 非常感谢!

2 个答案:

答案 0 :(得分:0)

听起来像是你的一个php文件中的硬编码重定向,它在查询字符串中检查为1,或者可能是需要更改的站点地址的config var。

答案 1 :(得分:0)

令人讨厌的是,这是由托管服务提供商引起的mod_sec错误。 1 = 1现在已修复,他们目前正处理.aviary.com问题。不管怎样,谢谢!