基本上问这个问题,但对于Python / Django: Java Web: Detect a URL with a trailing question mark and empty query string
结尾的问号可能会对SEO(重复内容)产生不良影响。在我们的情况下,很难在客户端避免这种情况,因此我想在服务器端重定向到非问号跟踪URL。但是,我找不到一种方法来检查Django是否发送了空查询字符串。
有无“?”附加request.GET
为空。另外,request.get_full_path()
和request.build_absolute_uri()
均不包含“?”如果request.GET
中没有GET参数。 URL模式根本无法捕获查询参数。
如果有人知道如何,也可以在NGINX中捕获并重定向它。
有什么想法吗?
答案 0 :(得分:0)
我建议对有关的网址使用JavaScript代码。
示例: 假设我们有一个带有搜索输入的导航栏。
在客户端,您可以创建一个url:
document.getElementById("search_click").addEventListener("click", function(){
var $search_term = document.getElementById("search_term").value;
var parm1 = "?q="+ $search_term;
var url = "{% url 'search_app:searchView' %}";
window.location.replace(url+parm1);
});
在服务器端:
def searchView(request, *args, **kwargs):
if request.GET.get('q') == '':
return redirect('app:view', *args)