>  Q&A  >  본문

매개변수를 사용한 nginx 리디렉션 문제

글쎄, 방금 키워드를 aaabbb로 변경했습니다.
다음은 /aaabbb/anime을 방문할 때 실제로 /ab_anime.php

를 요청한다는 의미입니다. 으아악

그러면 처음 클릭할 때 매개변수가 동시에 주소 표시줄에 표시되지 않도록 만들고 싶습니다. 매개변수가 없습니다.

그래서 매개변수가 없으면 뒤에 물음표가 나오는지 확인해봤는데 소용없더라구요.
내가 $1?id=$2를 직접 썼기 때문인가요?
주소 표시줄 끝에 추가된 매개변수만 사라집니다. 그러나 그것은 소용이 없었습니다.

이거 또 봤어

으아악

무엇을 해야할지 모르겠네요... 하나 더 작성하고 $arg를 사용해야 할까요? ? ?

滿天的星座滿天的星座2713일 전845

모든 응답(1)나는 대답할 것이다

  • 習慣沉默

    習慣沉默2017-05-16 17:17:56

    질문자가 문제를 복잡하게 만든 것 같습니다.
    물론, 질문자의 요구 사항을 제가 잘 이해했는지는 잘 모르겠습니다. 다음과 같이 자세히 설명하겠습니다.

    1. 사용자 요청/aaabbb/anime

    2. nginx는 /aaabbb.php?id=anime을 올바르게 구문 분석하고 콘텐츠 A를 사용자에게 반환합니다

    3. 사용자의 주소 표시줄은 /aaabbb를 읽고 콘텐츠 A

    4. 를 즐깁니다.
    5. 사용자는 브라우저를 새로 고치고 /aaabbb로 이동한 후 /aaabbb.php의 콘텐츠 B를 즐깁니다. (또는 콘텐츠 A를 계속 읽으세요)

    여기에 버그가 있습니다. 요청이 /aaabbb/anime인 경우 주소 표시줄은 기껏해야 /aaabbb/anime#xxxxxx로 변경됩니다. # 이전은 변경되지 않으며 # 이후는 해시가 됩니다. 주소 표시줄을 /aaabbb로 변경하려면 리디렉션 작업이 있어야 합니다.

    제 생각은 다음과 같습니다. (답변을 채택하시면 제 솔루션의 잘못된 내용에 대해 댓글을 달아주세요)

    1. nginx 재작성 전략은 rewrite ^/aaabbb/(w+)$ /redirect.php?target= last;

    2. redirect.php는 대상을 세션에 기록하고 리디렉션을 /aaabbb로 반환합니다(주소 표시줄은 이 방법을 통해서만 수정할 수 있고 수정할 수 있음)

    3. /aaabbb/ index.php로 이동하여 세션에서 대상을 읽고 지우고(또는 지우지 않고) 해당 PHP 파일을 호출하여 콘텐츠를 반환합니다.

    4. /aaabbb를 새로 고칠 때 index.php로 이동하고 세션을 기반으로 요청에 응답하세요.

    회신하다
    0
  • 취소회신하다