2014-06-16 68 views
1

我在配置Apache 2.2的mod_wsgi時遇到問題。我需要mod_wsgi來處理虛擬服務器根目錄下的所有內容,除了某些路徑。對於那些我希望普通的Apache目錄列表工作的路徑。以下虛擬服務器配置一半工作。 mod_wsgi不會直接將路徑引入到文件,而是對目錄執行。我無法弄清楚這一點。看看這裏的文檔 - https://code.google.com/p/modwsgi/wiki/QuickConfigurationGuide。它以我必須禁用mod_wsgi的方式顯示使用別名,但未提及此問題。 (請注意,它並不重要,但foo.wsgi終點只是hello world的例子)。WSGIScriptAlias覆蓋別名

<VirtualHost *:80> 
    ServerAdmin [email protected] 
    ServerName test.wsgi.sethandler.localdomain 
    DocumentRoot /var/www/test.wsgi.sethandler.localdomain 

    <Directory /var/www/test.wsgi.sethandler.localdomain> 
     Options Indexes FollowSymLinks MultiViews 
     AllowOverride FileInfo Options Indexes 
     Order allow,deny 
     allow from all 
    </Directory> 

    Alias /static /var/www/test.wsgi.sethandler.localdomain/static 

    WSGIScriptAlias//var/www/test.wsgi.sethandler.localdomain/cgi-bin/foo.wsgi 

    <Directory /var/www/test.wsgi.sethandler.localdomain/cgi-bin> 
    WSGIApplicationGroup %{GLOBAL} 
    Order deny,allow 
    Allow from all 
    </Directory> 
</VirtualHost> 

我已經試過禁用所有的處理程序有以下,但它不工作:

<Location "/static"> 
    SetHandler None 
</Location> 

<LocationMatch ^/static> 
    SetHandler None 
</LocationMatch> 

回答

0

你試圖把和結束斜線後靜態?

Alias /static/ /var/www/test.wsgi.sethandler.localdomain/static/ 

<Directory /var/www/test.wsgi.sethandler.localdomain/static/> 
Require all granted 
</Directory> 

WSGIScriptAlias//var/www/test.wsgi.sethandler.localdomain/cgi-bin/foo.wsgi 
+0

是的,我嘗試過。它不應該是任何不同的,除了1.你應該有斜線在別名和目標上或從兩者中省略,2.在別名上使用尾部斜槓不會匹配只說「/靜態」「/靜態/」 - 尾隨斜線。參考https://httpd.apache.org/docs/2.2/mod/mod_alias.html#alias。此外,'要求所有授予'沒有做任何事情來幫助。 –