나는 이것이 이전에 요청되었다고 확신하지만 작동하는 솔루션을 찾을 수 없습니다.
웹 사이트에서 CMS 서비스를 전환했지만 도메인이 동일합니다. 단일 페이지에 대해 nginx 다시 쓰기를 설정하는 방법은 무엇입니까?
예 :
이전 페이지
http://sitedomain.co.uk/content/unique-page-name
새 페이지
http://sitedomain.co.uk/new-name/unique-page-name
유의하시기 바랍니다 내가 콘텐츠 페이지 내에서 모든 리디렉션되고 싶지 않아,하지만 말 그대로 그냥 URL이 위에서 언급 한. 설정에 약 9 개의 리디렉션이 있는데 그중 하나는 패턴에 맞지 않습니다.
감사!
편집 : 슬래시없이 리디렉션한다는 사실을 제외 하고는이 솔루션이 작동하는 것으로 나타났습니다.
if ( $request_filename ~ content/unique-page-name/ ) {
rewrite ^ http://sitedomain.co.uk/new-name/unique-page-name/? permanent;
}
그러나 이것은 다음으로 리디렉션됩니다.
http://sitedomain.co.uknew-name/unique-page-name/
답변
함정 및 일반적인 실수 에서 직접 인용 : 과세 재 작성 :
return 지시문을 사용하면 정규 표현식의 평가를 완전히 피할 수 있습니다.
영구 리디렉션 return
대신 사용하십시오 rewrite
. 이 사용 사례에 대한 나의 접근 방식은 다음과 같습니다.
location = /content/unique-page-name {
return 301 /new-name/unique-page-name;
}
답변
피할 수 있으면 if 문을 사용하지 않는 것이 이상적입니다. 이와 같은 것이 작동 할 수 있습니다 (예상되지 않음).
location ~ /content/(.*)$ {
rewrite ^ /new-name/$1?$args permanent;
}
답변
나는 다음 해결책을 사용했다 :
rewrite ^(/content/unique-page-name)(.*)$ http://sitedomain.co.uk/new-name/unique-page-name/$2 permanent;
치료를합니다.
답변
나를 위해 다음과 같이 등호없이 작동했습니다.
location /old-url {
return 301 /new-url;
}