2009-10-17 3 views
1

내 웹 사이트 플랫폼이 변경되어 현재 내 사이트에서 태그 검색의 이전 위치를 가리키는 Google의 조회수가 증가하고 있습니다. 기본적으로 나는 가리 키도록해야합니다Nginx가 URI 쿼리 문자열 값을 다시 작성합니다.

http://www.website.com/articles/Subject%3Alist=Music-Oldies&review_state=published 

에 :

http://www.website.com/tags/Music-Oldies 

내 Nginx에 웹 사이트 파일을 것 말이다. 'Music-oldies'라는 태그 만 추출하면됩니다. 'Subject % 3Alist'는 실제로 'subject : list'입니다.

편집 :? '.... 기사/주제 %의 3Alist은 ...'

+0

'list = Music-Oldies' (반드시 정규식을 사용할 필요는 없음)의 URL을 검색하고 일치하는 항목이있는 경우 새 URL로 리디렉션하지 않는 이유는 무엇입니까? 그 문자열이 URL의 다른 부분에서 발생합니까? 아니면이 문자열에 다른 URL이있을 것입니까? – Amarghosh

+0

미안하지만, 항상 'music-oldies'가되는 것은 아닙니다. 그러나 태그는 항상 'subject : list'변수가됩니다. 이전 플랫폼은 plone이었고, 어떤 이유에서든 키워드 (태그)로 데이터 집합을 필터링하기 위해 'subject : list'를 사용합니다. –

답변

1

당신은이 같은 재 작성 지시어 필요 '... 기사 제목이 % 3Alist'.... '있었어야 :

rewrite Subject:list=([^&]+) /tags/$1 permanent; 
+0

마치 가까이에있는 것처럼 느껴지더라도 작동하지 않는 것 같습니다. 나는 시도했다 : [\? &] 제목 : list = ([^ &] +)/tags/$ 1 permanent; .. 쿼리 문자열의 어느 부분에도 붙이지 만 여전히 운이 없다. –

+0

무슨 일이 일어나는지 정확히 말하기 어렵다. 그것은 "주제"라는 단어의 대문자가 될 수 있습니까? 어쩌면 : [sS] ubject : list = ([^ &] +)/tags/$ 1 permanent를 다시 써라. 너에게 효과가 있니? – windyjonas

+0

정규식 도구에서 이것을 철저하게 테스트 한 후에는 모두 ':'btw 'subject'및 'list'와 함께 잘 작동합니다. 내가 할 수있는 유일한 결론은 nginx가 테스트하기 전에 ': %'을 '% 3A'로 디코딩하지 않는다는 것입니다. –