>source

웹 사이트 URL 구조를 변경했으며 사용자를 리디렉션하고 싶습니다.

다음에서 리디렉션해야합니다 :

https://example.com/find?q=batman

받는 사람

https://example.com/search?query=batman

어디"배트맨"검색어입니다.

나에게 문제는, 어떻게 바꾸는가

q   query 로   ?

그런 일이 작동하지 않아

RewriteRule ^find?q=[^/] /search?query=[^/] [R=302,L]

  • 답변 # 1

    와이즈 비즈  패턴은 URL 경로와 만 일치합니다. 이는 특히 쿼리 문자열을 제외합니다.

    대신 RewriteRule 를 사용해야합니다   RewriteCond 를 확인하라는 지시문  서버 변수 및 QUERY_STRING 이후의 나머지 쿼리 문자열 캡처 .

    예 :

    q=
    
    

    RewriteCond %{QUERY_STRING} ^q=(.*) RewriteRule ^find$ /search?query=%1 [R=302,L]  마지막 일치CondPattern에서 캡처 된 그룹에 대한 역 참조입니다. 즉. 와이즈 비즈  - %1 의 가치  URL 매개 변수 및 검색어 문자열의 나머지 부분입니다.

    캐싱 문제를 피하기 위해 302 (임시) 리디렉션을 301 (영구적)로 변경 한 후에는 정상적으로 작동하는지 확인하십시오.

    (.*)

관련 자료

  • 이전 react 네이티브 textInput setState () 키보드를 숨 깁니다
  • 다음 c++ - 인수로받은 람다로의 완벽한 전달