2013-05-01 2 views
0

에 URL을 추가 잘못 다시 [old_domain] -> [NEW_DOMAIN].htaccess로 내가 도메인을 마이그레이션하는 과정에있어 mod_wsgi에 설정 파일 경로

나는 htaccess로 규칙과 /etc/httpd/conf/httpd.conf 파일의 설정 파일에 왔을 때 문제가 발생 :

을 httpd.conf 처음

AllowOverride All 

나는 할 수 없었다 .htaccess 다시 쓰기 규칙을 적용 할 수 있도록 위의 내용을 어디에 둘 것인지 찾아야합니다. 내가 좋아하지만 효과에 뭔가에 넣어 시도했습니다

:

<Directory "/path/to/django/project/"> 
    AllowOverride All 
</Directory> 

나는 htaccess로 파일 (다음을 사용) 작업을 다시 기록 얻었다 URL이 이상한 뭔가를 반환하기 시작하면. URL이 URL을 수신

http://old_domain.com/news/ 

전송

RewriteEngine On 
RewriteCond %{HTTP_HOST} !^old_domain.com/$ [NC] 
RewriteRule ^(.*)$ http://new_domain.com/$1 [L,R=301] 

장고 프로젝트 디렉토리에

htaccess로

http://new_domain.com/apache/production.wsgi/news/ 

거의 거기에 ...하지만 누군가가 왜 이런 일이 일어날 지 제안 할 수 있습니까? new_domain 쪽에서 /apache/production.wsgi/을 제거하고 싶지는 않습니다. (예상하지 않는 한?)

미리 감사드립니다.

편집 : 하나의 빠른 수정이 장고의 HttpResponsePermanentRedirect를 사용하여 포함되어 있습니다. 이 나쁜 습관인가? 당신이 당신의 장고 폴더 내에서 재 작성 지시어를 사용하려면

+1

"모두 일치"를 의미하는 것은 장고 응용 프로그램은 각 리디렉션에 대한 타격을받을 것을 의미합니다. 가장 좋은 방법은 리디렉션이 발생하기 전에 터치 한 시스템을 최소화하는 것입니다. Django는 스택에서 한 단계 더 깊기 때문에 리디렉션 응답을 반환 할 때 추가 오버 헤드가 발생합니다. 당신이 그래도 최소한의 트래픽을 제공하는 경우 물론, 오버 헤드는 –

+0

편집 질문을 ... 고려하고 당신이 당신의 WSGI 응용 프로그램을 설치하는 방법으로 mod_wsgi에 구성을 제공하는 거의 가치가있다. WSGIScriptAlias ​​또는 Alias ​​/ AddHandler를 사용하고 있습니까? 또한 http://code.google.com/p/modwsgi/wiki/ConfigurationGuidelines#The_Apache_Alias_Directive에서 재 작성에 대한 정보를 참조 –

+0

때문에 여분의 인기가 너무 많이하지 않습니다 장고 리디렉션이 더 이상 사용되는 기존 서버에 있습니다 이슈.가능한 경우 WSGI 구성에 붙여 넣습니다. – Ogre

답변

2

는 당신이 우선 적용을 활성화해야합니다. 그렇지 않으면 그들은 무시됩니다

http://httpd.apache.org/docs/current/mod/core.html#allowoverride

는 희망이 재 작성을 위해 트릭을 수행합니다

Options +FollowSymLinks 
RewriteEngine on 
RewriteCond %{HTTP_HOST} !^newdomain\.com 
RewriteRule ^(.*)$ http://www.newdomain.com/$1 [R=301,L] 

가한다 RewriteCond 당신의 도메인의 기간을 구분해야합니다. 정규 표현식에서. HttpResponsePermanentRedirect를 사용

+0

감사합니다. 나는 이것을 시도 할 것이다. 나는 그 기간을 구분하는 것을 잊어 버렸다. – Ogre