Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.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添加一个尾部斜杠_Django_Apache_Wsgi_Trailing - Fatal编程技术网

让apache和django添加一个尾部斜杠

让apache和django添加一个尾部斜杠,django,apache,wsgi,trailing,Django,Apache,Wsgi,Trailing,My/train目录别名为httpd.conf中的脚本: WSGIScriptAlias/train/some path/./django.wsgi 除了一个问题外,它工作得很好。如果用户转到/train(没有尾随斜杠),它不会将用户重定向到/train/,而只会给用户提供正确的页面。这是一个问题,因为这样,当没有使用尾随斜杠访问该页面时,该页面上的相对链接会导致错误的位置 这是怎么解决的 谢谢。将您的urlconf设置为接受train/为有效,然后使train指向/train/我使用类似的方法

My/train目录别名为httpd.conf中的脚本: WSGIScriptAlias/train/some path/./django.wsgi

除了一个问题外,它工作得很好。如果用户转到/train(没有尾随斜杠),它不会将用户重定向到/train/,而只会给用户提供正确的页面。这是一个问题,因为这样,当没有使用尾随斜杠访问该页面时,该页面上的相对链接会导致错误的位置

这是怎么解决的


谢谢。

将您的urlconf设置为接受
train/
为有效,然后使
train
指向
/train/

我使用类似的方法重定向/train到/train/,我所做的是重定向所有URL,而不是以/to/train/结尾

<Location "/train">
     Order deny,allow
     Allow from all
     RewriteEngine on
     RewriteRule  !^.*/$  /train/  [R]
</Location>

WSGIScriptAlias /train /some-path/../django.wsgi

命令拒绝,允许
通融
重新启动发动机
重写规则!^.*/$/列车/[R]
WSGIScriptAlias/train/some path/./django.wsgi

如果您只需要从
/train
重定向到
/train/
,而不是从没有尾随斜杠的每个子目录重定向,那么使用RedirectMatch指令有一个更简单的解决方案:

RedirectMatch ^/train$ /train/

你是在询问设置吗?事实证明我实际上在寻找一个Apache解决方案,因为当前当用户转到/train时,没有任何东西被转发到我的Django代码。谢谢您的评论。谢谢,但是Django无法判断用户是去训练还是去训练/因为模式“^$”检测到了这两个,因为Apache服务器只将/train/(*)重定向到Django。我猜解决方案必须在httpd.conf中,而不是在Django中,至少如果我想使Django代码独立于包含的目录(也就是说,如果我想更改目录名,在httpd.conf中将/train/更改为其他名称应该是唯一要做的事情)!非常感谢你!