WSGIScriptAlias可以,但WSGIScriptAliasMatch不考虑DirectoryIndex

2024-09-29 17:15:48 发布

您现在位置:Python中文网/ 问答频道 /正文

这是/etc/httpd/conf.d中的a.conf/ 而不是编辑httpd.conf我只需使用a.conf

NameVirtualHost *:80


<VirtualHost *:80>
DirectoryIndex 1
DocumentRoot /a/b/
ServerName domain.tld
WSGIScriptAlias /1 /a/1.wsgi
WSGIScriptAlias /2 /a/2.wsgi
</VirtualHost>

在这个例子中,如果我去域名.tld通过网络。。在

^{pr2}$

自动执行。在

但让我们去掉WSGIScriptAlias,改用WSGIScriptAliasMatch。在

<VirtualHost *:80>
DirectoryIndex 1
DocumentRoot /a/b/
ServerName domain.tld
WSGIScriptAliasMatch ^/(.*) /a/$1.wsgi
</VirtualHost>

现在。。当我去的时候域名.tld通过网络。。我看不到1.wsgi 相反,它是默认的apache欢迎页面。在

所以看起来。。在

WSGIScriptAliasMatch ^/(.*) /a/$1.wsgi

没有注意到

DirectoryIndex 1

换句话说就是通过网络域.tld/1有用但是域名.tld不。。在

是什么造成的?在

怎么会这样

^{pr2}$

能解释吗域名.tld作为域.tld/1给定目录索引1 但是。。在

WSGIScriptAliasMatch ^/(.*) /a/$1.wsgi 

无法解释域名.tld作为域.tld/1给定目录索引1 ? 在

确保我只接受一次wsgi和99号计划。在

换句话说。。域.tld/1(索引)到域.tld/99指向99.wsgi

换句话说,我知道(.*)可能是一个安全问题。。但首先我要解决的问题是。。目录索引未被考虑。。通过WSGIScriptAliasMatch。。当它被认为是好的时候 WSGIScriptAlias

如果我不能解决这个问题。。我得用99行。。在

WSGIScriptAlias /1 /a/1.wsgi
WSGIScriptAlias /2 /a/2.wsgi
WSGIScriptAlias /3 /a/3.wsgi
...
WSGIScriptAlias /99 /a/99.wsgi

在a.conf中

这可能不太符合逻辑。在

所有这些都是因为DirectoryIndex不能像使用WSGIScriptAliasMatch那样使用WSGIScriptAliasMatch


Tags: 网络wsgidomainconf目录索引httpd域名tld
1条回答
网友
1楼 · 发布于 2024-09-29 17:15:48

尝试:

WSGIScriptAliasMatch ^/(.+) /a/$1.wsgi

您正在匹配“/”,并将其映射到“/a/.wsgi”。确保“/”后面至少有一个字符,如果您要使用的方案是数字,则最好确保它们是数字。在

^{pr2}$

相关问题 更多 >

    热门问题