如何在Django子目录中安装WordPress?
我在我的服务器上设置了Django,网址是 http://stevencampbell.org/
我想在 stevencampbell.org/blog/ 这个地址上运行WordPress。
我所有的Python和Django文件都是通过Fast_CGI来运行的(这是我服务器上唯一支持Django的选项)。我的 .htaccess 文件是这样的:
AddHandler fastcgi-script .fcgi
RewriteEngine On
RewriteRule ^(/media.*)$ /$1 [QSA,PT]
RewriteRule ^(/adminmedia.*)$ /$1 [QSA, PT]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ dispatch.fcgi/$1 [QSA,L]
我想我需要为博客目录添加另一个RewriteRule,但到目前为止我尝试的都没有成功。我可以访问 /blog/index.php,但访问 /blog/ 时却出现了Django的错误,这意味着这个目录仍然是由dispatch.fcgi文件处理的。
另外,我对这些重写规则也不是很确定。如果我做错了什么,请告诉我。
2 个回答
0
这听起来有点奇怪。我对 mod_rewrite
了解不多,没法检查你的设置。不过,为什么不直接用基于Django的博客引擎呢?比如说这个 http://github.com/nathanborror/django-basic-apps?
1
AddHandler fastcgi-script .fcgi
RewriteEngine On
RewriteRule ^(/media.*)$ /$1 [QSA,PT]
RewriteRule ^(/adminmedia.*)$ /$1 [QSA, PT]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !^/blog(/.*)?$
RewriteRule ^(.*)$ dispatch.fcgi/$1 [QSA,L]
看到那个额外的 RewriteCond
吗?它的意思是“如果请求不是 /blog
或 /blog/whatever
,那么就把请求重写到 dispatch.fcgi
。”
在你的 WordPress 的 .htaccess
文件中,位于 /blog
文件夹里,你应该在 RewriteEngine On
这行后面添加 RewriteBase /blog/
这一行。