我想重写以下网址:
是类似的东西 - 内容/添加 - 内容/编辑
我也使用预填充模型,并且希望能够重写此URL:
对于这样的事情:
这可能吗?如果是这样,我是否需要一些Drupal模块,或者我是否必须接受htaccess文件?
答案 0 :(得分:5)
使用pathauto模块,您可以为网址创建别名。你可以设置很多规则,并且应该可以使用它。我不确定它与预填充模型的整合程度如何。但其余的应该很容易。
答案 1 :(得分:1)
这里有几个选择。
1)您可以使用pathauto模块重命名路径。然后,这些路径在服务器级别变得完全可用,但旧节点/添加和节点/%/编辑路径仍然存在。
2)您可以创建一个通过hook_menu实现路径的自定义模块,从node.module的hook_menu实现中复制相应的代码。这也会在站点上留下旧节点/ add和node /%/ edit路径,但是您可以使用hook_menu_alter从菜单数组中取消设置相应的路径。
3)您可以使用Olav建议的custom_url_rewrite_inbound和custom_url_rewrite_outbound函数。
老实说,第一个选项通常是更好的选项,因为它会更快并且不会打开意外的错误。方法2肯定会改变你想要的东西,但也会涉及改变Drupal所依赖的一些相当基本的路径,并且当你发现节点模块中未被覆盖的角落时,这可能意味着很多调试会话。你的改变。方法3我不熟悉,但看起来它允许你像1中那样重写路径,但是让它们更真实,但是潜在的性能可能存在问题,并且需要进行大量的调试。
答案 2 :(得分:0)
您可以使用hook_menu创建一个实现这些回调的自定义模块,但这只会为这些操作创建其他网址而不会删除旧的回调。
答案 3 :(得分:0)
查看函数custom_url_rewrite_inbound和custom_url_rewrite_outbound。这些不是模块,而是放在settings.php中的函数,它们与drupal的url映射在低级别上进行交互。