【发布时间】:2022-01-24 21:24:30
【问题描述】:
在 django 中从 url 中删除参数的最佳方法是什么?例如,当 facebook 添加 fbclid?我正在尝试直接在urlpatterns 中进行重定向,但参数不断通过。
出于某种原因,我认为这将是一些简单的命令,例如 allow_parameters=False 之类的。
例如去
"https://www.example.com/?fbclid=IwAR2MOZRZga4dwgOXK4GDznLEuynTLw.."
到
"https://www.example.com/"
【问题讨论】:
-
实际上在代码中使用 [redirect][1] 是摆脱 GET URL 参数的简单方法。更多参考:*realpython.com/django-redirects [1]:docs.djangoproject.com/en/2.2/topics/http/shortcuts/#redirect
-
我希望直接在 url 中修复它,因为我不想将每次调用都重定向到主页。而且,我希望能够为登录页面等执行此操作。是否有一个方法来检查是否在 url 中添加了参数?我需要一些东西,如果有参数去重定向,否则直接进入主页。我尝试使用 re_path 但没有运气。
-
好吧,让我们看看。可能有很多方法,如果您使用的是 Apache Web 服务器,其中一种方法是使用 .httaccess。
RewriteCond %{QUERY_STRING} "fbclid=" [NC] RewriteRule (.*) /$1? [R=301,L] -
另外,这个不需要的 id 是如何进入你的页面的?是否可以通过搜索和替换操作将其从源代码或 DB(如果已加载内容)中删除?
-
感谢您的回答。我会试试看。 Facebook 自动将参数添加到所有传出链接。我认为找到一种方法来禁止附加到路由的所有参数(或任何字符串)是一个好主意。 re_path 中是否应该有一种方法来检查基本 url 之后是否有任何内容并将其发送到重定向视图?我正在尝试,但我认为问题在于 django 忽略了 url 中的查询字符串
标签: python django url url-pattern