這是我在/etc/httpd/conf.d/ 而不是編輯的httpd.conf a.conf我簡單地用a.confWSGIScriptAlias的確但WSGIScriptAliasMatch不認爲DirectoryIndex的
NameVirtualHost *:80
<VirtualHost *:80>
DirectoryIndex 1
DocumentRoot /a/b/
ServerName domain.tld
WSGIScriptAlias /1 /a/1.wsgi
WSGIScriptAlias /2 /a/2.wsgi
</VirtualHost>
在此工作例如,如果我通過網站去domain.tld ..
WSGIScriptAlias /1 /a/1.wsgi
自動執行。
但讓我們擺脫WSGIScriptAlias並改用WSGIScriptAliasMatch。
<VirtualHost *:80>
DirectoryIndex 1
DocumentRoot /a/b/
ServerName domain.tld
WSGIScriptAliasMatch ^/(.*) /a/$1.wsgi
</VirtualHost>
現在..當我去通過網絡來使用domain.tld ..我沒看到1.wsgi 相反,它是默認的Apache歡迎頁面。
所以看起來像..
WSGIScriptAliasMatch ^/(.*) /a/$1.wsgi
不支付任何注意
DirectoryIndex 1
換句話說,通過網絡使用domain.tld/1的作品,但使用domain.tld不..
這是什麼原因造成的?
它是如何
WSGIScriptAlias /1 /a/1.wsgi
可以解釋爲使用domain.tld使用domain.tld/1中給出的DirectoryIndex的1 但..
WSGIScriptAliasMatch ^/(.*) /a/$1.wsgi
無法解釋使用domain.tld作爲域名。 tld/1給出了DirectoryIndex 1 ?
一旦我解決了這個問題,我打算確保只有數字1到99被接受並導向到wsgi腳本。
換句話說..使用domain.tld/1(index)來使用domain.tld/99這將指向99.wsgi
換句話說,我理解(。*)可能是一個安全問題..但首先我想解決的問題爲什麼.. DirectoryIndex不被視爲..通過WSGIScriptAliasMatch ..當它被認爲很好由 WSGIScriptAlias
如果我不能解決這個問題..我將不得不使用也許99行..
WSGIScriptAlias /1 /a/1.wsgi
WSGIScriptAlias /2 /a/2.wsgi
WSGIScriptAlias /3 /a/3.wsgi
...
WSGIScriptAlias /99 /a/99.wsgi
in ac onf
這可能不太合邏輯。
所有因爲它與WSGIScriptAlias
做的DirectoryIndex不會與WSGIScriptAliasMatch工作