0
내 정규식 코드는 myvar=
이후의 ([^ &] +) (&. *)의 두 번째 변수와 잘 작동하지만 세 번째는 얻을 수 없습니다. foo=
(두 번째와 동일). 다음과 같은 URL을 출력 Regex에서 세 번째 변수를 가져올 수 없습니다.
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{QUERY_STRING} ^(.*&)?myvar=([^&]+)(&.*)?&foo=([^&]+)(&.*) [NC]
RewriteRule ^(index\.php)?$ /site/myvar/%2/%3/? [R=301,L]
:
http://localhost/site/myvar/15//
그렇다면 마지막 2 슬래시와 출력 변수로 3?
이것은 PHP와 어떤 관련이 있습니까? 오히려 .htaccess 문제가 아닌가요? –
캡처가 'Cond'에서 'Rule'까지 이동한다는 것을 알지 못했습니다. 이것은 분명히 사실입니까? –
@LightnessRacesinOrbit : Cond의 그룹 앞에 퍼센트 (% N, N은 그룹 번호)가옵니다. 이것은 그룹을 가진 마지막 Cond에만 적용됩니다. 규칙의 그룹 앞에는 달러 ($ N, N은 그룹 번호)가옵니다. http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rewritecond –