Nginx 간단한 제품을 기존 카테고리에서 새로운 카테고리로 리디렉션


9

이전 카테고리에서 새로운 카테고리로 제품을 리디렉션하고 있습니다.

나는 다음 규칙에 따라 작동하도록했습니다.

rewrite ^/old-category/(.*) /new-category/$1;

그러나 나는 "end line"sign $을 언제 사용해야하는지, 그리고 그것과의 차이점이 있거나없는 경우를 알고 싶습니다. 예를 들면 다음과 같습니다.

rewrite ^/old-category/(.*)$ /new-category/$1;

또한 사용자가 제품없이 기존 카테고리 이름을 작성하는 경우 사용자를 리디렉션하고 싶습니다. 카테고리 리디렉션에 대해서만 새 규칙을 만들거나 위의 현재 규칙을 편집하여 두 경우 모두 작동 할 수 있습니다.

미리 답변 해 주셔서 감사합니다.

답변:


9

질문에 순서대로 답하십시오 ...

rewrite ^/old-category/(.*) /new-category/$1;

rewrite ^/old-category/(.*)$ /new-category/$1;

서면 으로 동일합니다. .*규칙은이 때문에, 0 이상 "모든"의 일치 $중복 / 정말 필요하지 않습니다.

$당신이 일치하는 문자열을 할 때 터미네이터 유용이를 A의 특정 방법 , 예를 들어,

rewrite ^/old-category/(.*)\.php$ /new-category/$1;

PHP 파일 만 다시 작성 합니다 .

두 번째 질문에 관해서는, 내가 올바르게 이해하면 이것을 리디렉션하고 싶습니다.

http://example.com/old-category/

이에

http://example.com/new-category/

그렇다면 ZERO 또는 더 많은 문자 와 일치 하므로 이미 rewrite규칙에 의해 수행 된 것 입니다..*


3
좋은 질문, 좋은 답변입니다. 많은 사람들이 실제로 의미하는 바에 대해 생각하지 않고 $를 기본적으로 설정하거나 기본적으로 생략합니다. (. *) $를 볼 때마다 나는 울었습니다. 나는 그것을 시도하지는 않았지만 실제로이 경우 $를 제외하면 정규 표현식이 확인 해야하는 다른 규칙이므로 약간 더 나은 성능을 가질 수 있습니다 . 그 질문에 대한 답을 얻는 것이 재미있을 것입니다 : D
Broco
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.