2010-10-26 28 views
2

我想從外部網站打開Magento商店鏈接。打開商店鏈接時,我需要使用查詢字符串參數發送一些信息。 於是我打開鏈接(通過PHP代碼),例如: http://magentostore.com/myproduct.html?id=3434&user=445Magento忽略額外的URL參數設置

但是Magento的商店鏈接忽略查詢字符串參數並重新加載頁面: magentostore.com/myproduct.html

我檢查在Firebug中,可以看到沒有查詢字符串參數的情況下重定向到Magento商店。有沒有辦法來覆蓋這種行爲,並讓Magento加載查詢字符串參數? 我可以在Magento商店中做什麼設置來允許它使用查詢字符串參數? 是否有任何其他方式向Magento商店頁面發送更多信息?

有沒有辦法找出它的Magento做到這一點,而不是服務器?

感謝

+1

Magento正在接收第一個請求上的查詢,但重定向到它在URL重寫列表中的URL。這可能是爲了SEO的原因。無論您需要哪些代碼,這些值都應在重定向發生之前將其存儲在會話變量中。 – clockworkgeek 2010-10-27 00:56:22

+0

作爲一個方面說明,請不要做任何事情,通過將?user = 445添加到查詢字符串來覆蓋Magento的安全措施。 – 2010-10-27 13:13:13

+0

謝謝你的評論。我們正試圖通過外部網站與Magento商店交談。基本上,當一個特定的Magento商店頁面加載時,我們希望它知道它來自我們已知的外部網站以及誰在發送它。這是通過查詢字符串參數(uid)實現的。我們只需要一個頁面。我們在Magento頁面上有一些JavaScript,它將讀取查詢字符串,然後創建一些用於跟蹤的cookie。有沒有其他的方式來實現這一點?我們可以關閉查詢字符串消毒只有一個頁面嗎?這是非常關鍵的.. – deveffort 2010-10-27 23:01:47

回答

1

Magento的正在接收第一個請求的查詢,但重定向到它在URL重寫列表中的網址。這可能是爲了SEO的原因。無論您需要哪些代碼,這些值都應在重定向發生之前將其存儲在會話變量中。

deveffort說:
我研究了URL重寫,看起來像有一個URL重定向的產品鏈接!我已經刪除它,並讓我的方案工作。但是,如果有任何可以完成的工作來確保Magento代碼不會執行任何查詢字符串參數清理,那將非常好。非常感謝..

clockworkgeek說:
我怕去除重寫是暫時的。它將取代下一個產品重新索引或可能在產品保存時取代。由於您只想設置一些cookie,因此無需通過javascript完成,反正這種方式不太可靠。
相反,創建一個觀察者來觀察catalog_controller_product_view的事件。讓觀察者檢查查詢參數,如果存在正確的參數,請設置cookie。此外,它可能會嘗試檢查引薦來源網址是否與您期望的相符,這可能會使價值更難以欺騙。

+0

謝謝..將檢查到magento事件掛鉤。爲什麼通過js設置cookie不可靠的任何具體原因? – deveffort 2010-11-02 10:13:54

+0

因爲js並不總是啓用或啓用,但頁面上的早期錯誤停止執行。這些是罕見的情況,但我已經習慣儘可能地在服務器上儘可能地做到這一點,我可以保留控制權並將其與其他進程一起備份。 – clockworkgeek 2010-11-02 12:19:39