我将尝试在HostGator上部署一个简单的静态网站。我按照这个教程进行操作,并在我的.htaccess文件中(其中abc.com是网站)添加了以下内容:
AddHandler fcgid-script .fcgi
Options +FollowSymLinks
RewriteEngine On
RewriteRule (media/.*)$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(admin/.*)$ index.fcgi/$1 [L]
RewriteCond %{HTTP_HOST} ^abc\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.abc\.com$
RewriteRule ^/?$ "http\:\/\/abc\.com\/index\.fcgi" [R=301,L]
但这并没有起作用,只会从我的模板目录加载“home.html”,而且原因不明。当我尝试跟随任何链接时,会出现hostgator 404错误页面。之后,经过一些研究和几次与hostgator支持人员的交谈,我将其更改为简单得多的:
AddHandler fcgid-script .fcgi
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.fcgi/$1 [QSA,L]
我在public_html目录下的index.fcgi文件如下:
#!/usr/local/bin/python
import sys, os, user
from django.core.servers.fastcgi import runfastcgi
sys.path.insert(0, "/usr/lib/python2.6")
sys.path.insert(0, "/home/joeshmo/django")
sys.path.insert(0, "/home/joeshmo/django/Projects")
sys.path.insert(0, "/home/joeshmo/django/Projects/PersonalWebsite")
# Switch to the directory of your project.
os.chdir("home/joeshmo/django/Projects/PersonalWebsite/")
# Set the DJANGO_SETTINGS_MODULE environment variable.
os.environ['DJANGO_SETTINGS_MODULE'] = "PersonalWebsite.settings"
runfastcgi(method="threaded", daemonize="false")
这个方法可以解决问题,但我非常好奇它是如何工作的。尽管我自己做了一些研究,但我对fcgi到底是什么以及它是如何告诉django从我的模板目录加载正确的html文件感到困惑。我跟HostGator技术人员交流后他们向我保证只能从public_html文件夹访问html文件。虽然我对url调度程序、正则表达式、视图等概念有所了解,但请记住我是一位自学成才的Web开发者。