我有 .htaccess 文件 -
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>
并关注 index.fcgi 文件:
#!/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()
Django应用程序成功运行,但插入&#39; index.fcgi&#39;在这样的URL中 -
www.example.com/index.fcgi/admin ,而不是 www.example.com/admin
如何从网址中删除脚本名称?
我尝试按照这里的说明进行操作 - http://flask.pocoo.org/docs/0.10/deploying/fastcgi/
但它适用于烧瓶,我无法让它运行Django。
P.S - 我在共享主机方案中没有服务器的root访问权限。
答案 0 :(得分:1)
我刚刚在.htaccess文件中添加了这个。它足以从URL隐藏index.fcgi。
<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>