这是/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
尝试:
您正在匹配“/”,并将其映射到“/a/.wsgi”。确保“/”后面至少有一个字符,如果您要使用的方案是数字,则最好确保它们是数字。在
^{pr2}$相关问题 更多 >
编程相关推荐