미안하지만, 내가해야 할 일이 정말 어리 석다. 그래서이 질문은 바보 같다. 아파치에서 NginX로 사이트를 옮깁니다. 그래서 .htacess 리디렉션을 NginX conf로 전송해야합니다. 그래서, 좋은 변환기를 발견하고 단일 규칙을 잘 작동합니다. 하지만 몇 가지를 구현하자마자 그 일이 발생합니다. 예를 들어, 두 단계 : 1. NONWWW - 그것은 mysite.com/index.php?p=123으로 잘 작동 htaccess로에서 URINginX에서 여러 조건/규칙이 작동 중일 때 리디렉션 체인을 피하십시오?
에서> WWW 2. 제거의 index.php -> (301) www.mysite.com/?p=123, 한 번에 하나의 리디렉션
하지만 NgonX에서
나도 같은 규칙을했고,이 체인으로 작동합니다site.ru/index.php?p=123 -> (301) site.ru/?p=123 -> (301) www.site.ru/?p=123 제가 생각하기에 이것은 완전히 잘못되었습니다.
나는 바보이며 체인을 피하기 위해 조건과 규칙의 일부를 "괄호에 넣는 것"과 같은 표준 및 간단한 절차를 건너 뛰기를 바란다 ... 나에게 무엇이 잘못 되었습니까? 또는 내 방식은 NginX를 잊어 버리는 것입니다. - 멈출와의 index.php 제거가 작동하지 않습니다> WWW
# non-WWW to WWW
if ($http_host !~ "^$"){
set $rule_0 1$rule_0;
}
if ($http_host !~* "^www."){
set $rule_0 2$rule_0;
}
if ($http_host ~ "(.+)$"){
set $rule_0 3$rule_0;
set $bref_1 $1;
}
if ($rule_0 = "321"){
rewrite ^/(.*) http://www.$bref_1/$1 permanent;
}
# remove index.php string from URL
if ($uri ~ "^/index.php$"){
set $rule_0 1$rule_0;
}
if ($rule_0 = "1"){
rewrite /./permanent;
}
이 위 NONWWW 후, 전혀 작동하지 않습니다 :이 예를 어떻게했는지
.
# non-WWW to WWW
if ($http_host !~ "^$"){
set $rule_0 1$rule_0;
}
if ($http_host !~* "^www."){
set $rule_0 2$rule_0;
}
if ($http_host ~ "(.+)$"){
set $rule_0 3$rule_0;
set $bref_1 $1;
}
if ($rule_0 = "321"){
rewrite ^/(.*) http://www.$bref_1/$1 permanent;
}
# remove index.php string from URL
if ($uri ~ "^/index.php$"){
set $rule_0 1$rule_0;
}
if ($rule_0 = "1"){
rewrite /./permanent;
}
이 체인으로 만 작동합니다 ...
여러 조건을 허용하지 마십시오! –