2011-09-28 85 views
2

我試圖使目的地在這樣一個Drupal路徑:如何正確設置自定義的目標在Drupal網址

http://myhost/root-folder/node/100/delete?destination=node/150?nid=300 

這是一個有點不尋常的Drupal的術語來講,但這是我的要求。

當我訪問上述網址時,它顯示了一個刪除按鈕和一個取消鏈接。但是,當我點擊取消鏈接,重定向的頁面URL變成這樣:

http://myhost/root-folder/node/150%3Fnid%3D300 

,而不是

http://myhost/root-folder/node/150?nid=300 

myhost = localhost

這意味着它與代碼%3F更換?=%3D

我該如何避免這個問題?

+0

你是什麼意思'試圖取代目的地'?怎麼樣?哪裏?什麼時候? – Clive

+0

它不是取代。它的地方@ clive –

+0

我的錯誤,請參閱下面的答案:-) – Clive

回答

2

這實際上是完全正確的,所述第二?是查詢字符串標識符(即,第一?)之後,所以它具有是URL編碼到保持有效。

不要擔心,但是當Drupal使用drupal_get_destination() function執行重定向時,它會對編碼後的字符串進行解碼並重定向到正確的路徑。

嘗試在this online tool中放入幾個不同的網址,您會看到它們是假設看起來像編碼正確時的樣子。

+0

即使我使用$ basepath.'node /'.$ nodeid。'/ delete?'。drupal_get_destination()。 –

+0

它仍然顯示節點/ 35414 /刪除?目的地=節點%2F821%3Fnid%3D35414 –

+0

我仍然無法解決這個難題@ clive –

相關問題