2010-03-29 5 views
0

웹 사이트의 하위 폴더에서 내 django 프로젝트를 실행하고 있습니다. 내 프로젝트가 열리는 주소는 다음과 같습니다.django urlconf 또는 .htaccess 문제

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/ 

같은 페이지로 사용자를 redireting의 그것은

http://example.com/social/someurl/ 

로 리디렉션 그것은 작동하지 않습니다. 내가 알고 싶은 것은이 문제를 해결하는 방법입니다.

django-socialauth (github.com/uswaretech/Django-Socialauth)의 redirects, socialauth.views.py 줄 179 위의 일반적인 예와 비슷한/myproject /없이 리디렉션. 또한 프로젝트에서 django cms2.0을 사용하면 example.com/myproject/en/admin이 아닌 admin auth에서 example.com/en/myproject/admin/으로 리디렉션됩니다. 하지만 장고 CMS의 문제가 될 수 있습니다.

이런 종류의 문제는 django 문제이며 urconf로 변경하고 모든 URL에 myproject를 추가해야합니다. 그렇지 않으면 .htaccess로해야합니까? 나는 슬프게도 답이 나오지 않는 유사한 질문을 발견했다 : How to write .htaccess if django project is in subfolder and subdomain?

앨런.

+0

"경우에 따라"?? 어떤 특수한 경우에는 작동하지 않습니까? –

+1

@Zatatzz : 소유하고있는 질문에 덧글을 달지 마십시오. 질문을 업데이트하십시오. 귀하의 정보로 질문을 업데이트 한 다음 코멘트를 삭제하십시오. –

답변

0

그건 그 장고-CMS-2.0 미들웨어 레벨을 사용하여 URL에 로케일 접두사를 추가 보인다. 정말로 잘.

하지만 더 흥미로운 것은 ... 그들이 ('페이지 루트') 그래서

, 대신 urls.py에서이 작업을 수행 할 수있을 해결을 사용하여 URL의 모든 접두사 것을

입니다
if not settings.DEBUG: 
    urlpatterns += patterns('', 
     url(r'^myproject/$', details, {'slug':''}, name='pages-root') 
    ) 

cms.urls 앞에 위의 url 패턴을 추가했는지 확인하십시오. /settings_production.py

from settings import * 
ROOT_URLCONF = 'urls_production' 

에서 /urls_production.py

from django.conf.urls.defaults import * 
urlpatterns = patterns('', 
    (r'^myproject/', include('urls')), 
) 

에서

+0

나는 진실이 아닙니다. 토초로 작성된 답변 이외의 답변을 테스트 할 수 있습니다. 당분간은 효과가있는 것 같지만 시간을 들여서 테스트하지 않았습니다. 그러나 버드가 나를 위해이 urlrewriting 코드를 작성하는 데 많은 어려움을 겪었 기 때문에, 저는 이것을 작동하는 응답으로 받아 들일 것입니다. –

0

당신이 시도 할 경우 RewriteBase를

RewriteRule ^(myproject/.*)$ mysite.fcgi/$1 [QSA,L] 
+0

아니, 그건 작동하지 않습니다.이게 정확히 무엇을하고 있는지 잘 모르겠지만, 이런 종류의 변경 결과는 나에게 다음과 같은 오류가 발생합니다. - 폴더에 들어갈 수있는 권한이 없습니다.이 폴더가 무엇이든간에 ... –

0

를 설정하는 것 :

RewriteEngine On 
RewriteBase /myproject/ 
0

DJANGO_SETTINGS_MODULE 서버 환경에서 settings_production로 설정해야합니다.

+0

django-cms-2.0 다국어 모듈을 간략하게 살펴 보겠습니다. 이후 django가 브라우저에 응답을 보내기 바로 전에 로켈 접두사를 추가합니다. 그래서, 당신은 내 다른 대답을 대신 시험해 볼 수도 있습니다. – Bird