我在一个网站的子文件夹中运行我的django项目。假设我的项目要打开的地址是。
http://example.com/myproject/
myproject文件夹是我的用户帐户的根文件夹。在该文件夹中,我有启动项目fcgi脚本。文件夹中的.htaccess文件包含以下内容:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ mysite.fcgi/$1 [QSA,L]
问题是,在某些情况下,不是将用户重定向到像这样的页面
http://example.com/myproject/social/someurl/
它重定向到
http://example.com/social/someurl/
这不起作用。我想知道的是如何解决这个问题。
重定向在django-socialauth (github.com/uswaretech/Django-Socialauth)中,socialauth.views.py第177行重定向没有/myproject/,类似于上面的通用示例。我还在项目中使用了django cms2.0,它将admin auth中的用户重定向到example.com/en/myproject/admin/,而不是example.com/myproject/en/admin。但这可能是django cms的问题所在。
这种行为是不是django的问题,我应该用urconf改变它,并将我的项目添加到所有的urls中,或者我应该用.htaccess来做这件事?我发现了类似的问题,遗憾的是,它仍然没有得到回答:How to write .htaccess if django project is in subfolder and subdomain?
艾伦。
发布于 2010-04-08 00:03:48
看起来django-cms-2.0使用中间件级别将locale前缀添加到url中。确实很好。
但更有趣的是,它们使用resolve('pages-root')作为所有url的前缀。
因此,您可以在urls.py中执行此操作。
if not settings.DEBUG:
urlpatterns += patterns('',
url(r'^myproject/$', details, {'slug':''}, name='pages-root')
)
只需确保将上述sure模式附加到cms.urls之前即可。
发布于 2010-03-29 18:11:43
如果你试着
RewriteRule ^(myproject/.*)$ mysite.fcgi/$1 [QSA,L]
发布于 2010-04-02 20:31:55
设置RewriteBase:
RewriteEngine On
RewriteBase /myproject/
https://stackoverflow.com/questions/2536985
复制相似问题