我有一个带有特定URL的django项目,由“ catchall” URL设置。
因此,我可以转到mysite/living
,并使其作为参数传递,并从数据库中获取适当的详细信息。
我的urls.py:
url(r'^$', views.index, name='index'),
url('about/', views.about_view, name='about_view'),
url('contact/', views.contact_view, name='contact_view'),
url('(?P<colcat>[\w\-]+)/collection/(?P<name>[\w\-]+)$', views.collection_detail, name='collection_detail'),
url('(?P<colcat>[\w\-]+)/$', views.collection_view, name='collection_view'),
我遇到了一个问题,其中任何东西都可以作为参数传递。对于搜索引擎而言尤其如此,其中mysite/index.html/index.html
返回有效页面。
是否有一种方法可以限制“允许”匹配的网址?
答案 0 :(得分:1)
用户浏览时很少手动输入/修改URL。每个人都谷歌搜索并单击搜索引擎显示的任何链接。因此,您只需要限制搜索引擎索引的内容即可。
这可以通过将sitemap.xml
文件添加到网站的根目录来完成。
sitemap.xml
指定您网站的所有网址以及一些其他信息,以使搜索引擎更容易抓取。如果您不添加sitemap.xml
,搜索引擎将尝试对每个可能的URL进行爬网。 如果添加了,则不会。
django已经提供了一个站点地图生成框架:https://docs.djangoproject.com/en/2.1/ref/contrib/sitemaps/