簡體   English   中英

如何重寫特定的URL?

[英]How can I rewrite a specific URL?

我想重寫以下網址:

  • 節點/添加
  • 節點/編輯等

要像-內容/添加-內容/編輯

我還使用了預填充模型,並且希望能夠重寫此URL:

  • 節點/添加/單個圖庫圖像?編輯[field_gallery_node_reference] [0] [nid] = 48

對於這樣的事情:

  • 內容/添加/圖像?n = 48

這可能嗎? 如果是這樣,我是否需要為此使用一些Drupal模塊,還是必須使用htaccess文件?

使用pathauto模塊,您可以為URL創建別名。 您可以設置許多規則,並且應該能夠走得很遠。 我不確定它與人口模型之間的整合程度如何。 但是其余的應該很容易。

這里有兩個選擇。

1)您可以使用pathauto模塊來重命名路徑。 這些路徑然后可以在服務器級別完全可用,但是舊的node / add和node /%/ edit路徑仍然存在。

2)您可以創建一個自定義模塊,該模塊通過hook_menu實現路徑,並從node.module的hook_menu實現中復制相應的代碼。 這還將在站點上保留舊的node / add和node /%/ edit路徑,但是您可以使用hook_menu_alter從菜單數組中取消設置適當的路徑。

3)您可以按照Olav的建議使用custom_url_rewrite_inboundcustom_url_rewrite_outbound函數。

坦率地說,第一個選擇通常是更好的選擇,因為它會更快並且不會打開意外的錯誤。 方法2肯定會改變您想要的東西,但也會涉及更改Drupal所依賴的一些相當基本的路徑,並且當您發現節點模塊未涵蓋的角落時,這可能意味着很多調試會話。您的更改。 方法3我不太熟悉,但是看起來它可以讓您像1中一樣重寫路徑,但是使它們更真實,但是性能潛伏在那里可能會出現問題,並且還要進行大量調試。

您可以創建一個自定義模塊,使用hook_menu實現這些回調,但這只會為這些操作創建其他URL,而不會刪除舊的URL。

看一下函數custom_url_rewrite_inboundcustom_url_rewrite_outbound 這些不是模塊,而是放置在settings.php中的功能,這些功能與drupal的url映射在較低級別進行交互。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM