2016-07-20 27 views
0

Ich habe folgende .htaccess Datei -Hiding fcgi Skript Dateiname von URL in django app mit FastCGI und Apache gehostet

AddHandler fcgid-script .fcgi 
DirectoryIndex index.fcgi 

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteBase/
    RewriteRule ^index\.fcgi$ - [L] 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)$ /index.fcgi/$1 [L] 
</IfModule> 

und folgende index.fcgi Datei:

#!/home/username/mydjango/bin/python 
    import os 
    import sys 

    from flup.server.fcgi import WSGIServer 
    from django.core.wsgi import get_wsgi_application 

    sys.path.insert(0, "/home/username/mydjango") 
    os.environ['DJANGO_SETTINGS_MODULE'] = "testproject.settings" 

    WSGIServer(get_wsgi_application()).run() 

Die Django-App wird erfolgreich ausgeführt, fügt jedoch in der URL "index.fcgi" wie folgt ein:

www.example.com/index.fcgi/admin statt www.example.com/admin

Wie kann ich aus der URL den Namen des Skripts Streifen?

Ich habe versucht, den Anweisungen folgen hier - http://flask.pocoo.org/docs/0.10/deploying/fastcgi/

Aber es ist für Kolben und ich kann es nicht für Django laufen bekommen.

P.S - Ich bin auf einem Shared-Hosting-Plan ohne Root-Zugriff des Servers.

Antwort

1

Ich habe dies nur in meiner .htaccess-Datei hinzugefügt. Es reichte aus, um index.fcgi von URLs zu verstecken.

<IfModule mod_fcgid.c> 
    AddHandler fcgid-script .fcgi 
    <Files ~ (\.fcgi)> 
     SetHandler fcgid-script 
     Options +FollowSymLinks +ExecCGI 
    </Files> 
</IfModule> 

<IfModule mod_rewrite.c> 
    Options +FollowSymlinks 
    RewriteEngine On 
    RewriteBase/
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule ^(.*)$ index.fcgi/$1 [QSA,L] 
</IfModule>