2012-11-26 48 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