1

Webサーバーから利用できるようにしたいtracプロジェクトがいくつかありますが、ワイルドカードを使用してURLを関連するwsgiファイルに自動的にマップすることはできますか?

次の仮想ホストを追加することで手動で行うことができます。

<VirtualHost *:80>
  DocumentRoot /var/www/trac.mydomain.com
  ServerName trac.mydomain.com
  WSGIScriptAlias /project1 /var/trac/project1/trac.wsgi
</VirtualHost>

ただし、より多くのtracプロジェクトを開くと、WSGIScriptAlias行の数が増えます。ワイルドカードを使用して、着信URLを正しいwsgiファイルに自動的にマップすることは可能ですか?私はそれがこのように見えるだろうと想像します:

<VirtualHost *:80>
  DocumentRoot /var/www/trac.mydomain.com
  ServerName trac.mydomain.com
  WSGIScriptAlias /<wildcard> /var/trac/<wildcard>/trac.wsgi
</VirtualHost>
4

1 に答える 1

1

典型的な!質問を投稿した後に行ったグーグル検索は、関連する結果をもたらしました。解決策は、WSGIScriptAliasMatchと正規表現を使用することです。上記の私の例を考えると、構成は次のようになります。

<VirtualHost 95.211.154.197>
  DocumentRoot /var/www/trac.mydomain.com
  ServerName trac.mydomain.com
  WSGIScriptAliasMatch ^[^/]+ /var/trac/$1/trac.wsgi
<VirtualHost>

ここで、^ / [^ /] +は、ルートURLから最初の/までのすべての文字に一致します。例:http: //trac.mydomain.com/matched/notmatched/notmatchedether.whateverは/var/trac/matched/trac.wsgiにマップされます

于 2012-10-12T12:41:53.077 に答える