Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用apache/django重定向http请求_Django_Apache_Django Urls - Fatal编程技术网

如何使用apache/django重定向http请求

如何使用apache/django重定向http请求,django,apache,django-urls,Django,Apache,Django Urls,我在Django创建了一个简单的站点。我使用的URL是http::/www.example.com/nl/和 My Django URL.py有以下行: (r'^(?Pnl | fr)/','example.views.index') 在example.views.index中,我检查了language参数。如果是“nl”,我会显示一个模板。如果是'fr',我会显示一个不同的模板 这很有效。现在,客户创建了两个不同的URL: 及 最后我要问一个问题: 有没有一种方法可以让我在不更改django代

我在Django创建了一个简单的站点。我使用的URL是http::/www.example.com/nl/和

My Django URL.py有以下行:

(r'^(?Pnl | fr)/','example.views.index')

在example.views.index中,我检查了language参数。如果是“nl”,我会显示一个模板。如果是'fr',我会显示一个不同的模板

这很有效。现在,客户创建了两个不同的URL:

最后我要问一个问题:

有没有一种方法可以让我在不更改django代码的情况下使用新的URL?我假设我可以告诉apache在用户转到时显示页面。但是我该怎么做呢?django还能从url获取“language”参数吗


提前感谢您的回答。

如果您可以在上面使用.htaccess文件,您可以像这样使用apache的重定向指令

redirectMatch 301 ^(.*)$ http://www.example.com/nl/
这将把发送到dutch.com的所有请求重定向到example.com/nl

你也可以使用

redirect 301 /index.html http://www.example.com/nl/

这将仅将dutch.com上的“index.html”重定向到example.com/nl/(注意,第一个参数是路径,不能是URL-否)

重要的是,要注意,转到不是一个选项。因此,您想要的是将所有内容从重定向到?这正是我想要的,andi。同样重要的是,我仍然可以访问Django的nl。这听起来可能是我所需要的。但是,用户会看到什么?浏览器url将更改为www.example.com/nl还是保留在dutch.com上?另外,如果index.html页面有一个指向“../fr/index.html”的链接,当我单击它时会发生什么情况?它会转到example.com/fr/index.html还是会给出一个错误,因为我无法在dutch.com上找到一个文件夹?是的,URL将更改为example.com/nl,所以第二件事应该不会有问题。如果用户没有查看URL,他甚至可能不会注意到。第二个问题没有发生。