2012-11-26 46 views
2

我正在开发一个教会的新网站。 老域名:chippingcampdenbaptistchurch.org.uk 新域名:campdenbaptist.org.ukmod_rewrite。AJAX呼叫抛出错误.htaccess

的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。是否存在(如果没有,则附加它) 并处理'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查询字符串来有点像的第一部分= 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 

任何想法?它似乎是,如果您从上述两个调用中删除查询字符串错误不会发生。 非常感谢!

+0

在snag_dates.php或其中可能包含的任何php文件中是否有任何头文件重定向?尝试注释掉或删除你的htaccess文件,看看它是否仍然以这种方式来确认htaccess是否真的是罪魁祸首。首先清除浏览器缓存,以确保它不像有时那样存储重定向。 – WebChemist

+0

感谢您的建议,尝试一切,但无济于事。 这里真的很奇怪。如果你去: 'HTTP://www.campdenbaptist.org.uk/dev/tools/blocks/booking_form/snag_dates.php 1 = 1&日期为03/16/2013年及页= 272' 或 'HTTP ://www.campdenbaptist.org.uk/dev/tools/blocks/booking_form/snag_dates.php?a = 1&date = 03/16/2013&page = 272' 结果因不断变化= 1到a = 1 - 多奇怪! (我已经摆脱了htaccess重定向到旧的网站地址,它现在只是一个index.php头(“位置:chippingcampdenbaptistchurch.org.uk”),所以可以看到错误页面。 – harveyappleton

+0

我试了几个查询字符串和它不只是1 = 1,它似乎是任何(数字键)=(数值)。我刚刚再试了一两分钟,1 = 1没有重定向(200 OK),但它刚刚开始投掷403,所以我猜你还在测试? – WebChemist

回答

0

恼人的是,它是由托管提供商造成的mod_sec错误。 1 = 1现在已修复,他们目前正在处理.aviary.com问题。不管怎么说,还是要谢谢你!

0

听起来像一个硬编码的重定向在你的PHP文件中,检查查询字符串中的1或可能是需要更改的站点地址的配置变量。

+0

似乎没有要是这样的话,如果你把最初发布的最后一个ajax调用并尝试它,它会显示403禁止。如果您在查询字符串中删除了featherfiles.aviary.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' - works!但完整的查询字符串。似乎没有。在第一个例子中将1 = 1改为a = 1相似,这使它有效吗? – harveyappleton

+0

所以如果文本'chippingcampdenbaptistchurch.org.uk'没有出现在你的代码库中的任何地方,那么我想这不是问题。接下来要看的是缓存。你有什么缓存? –

+0

事实上,它看起来并不是一个.htaccess问题。禁用漂亮的URL(没有缓存到位),这里是一个index.php文件的直接链接,然后处理其余的/ query/string/like /这个 'http://www.campdenbaptist.org。 uk/dev/index.php/tools/blocks/booking_form/snag_dates.php?1 = 1&date = 03/16/2013&page = 272' 并引发错误。当它是1 = 1但不是a = 1时,必须是抛出禁止错误的PHP问题?或a = 2?很奇怪... – harveyappleton