search/2
을 다시 작성하는 방법 index.php?search="x"&&searc_by="y"&page_no=2
에서?다시 쓰기 규칙 및 the_request
내가 틀리지 않다면 %REQUEST_URI
은 search/2
입니다. 맞습니까? 이 경우 %THE_REQUEST
도 무엇입니까?
search/2
링크가있는 페이지가 home_page로 재 작성됩니다.
search/2
을 다시 작성하는 방법 index.php?search="x"&&searc_by="y"&page_no=2
에서?다시 쓰기 규칙 및 the_request
내가 틀리지 않다면 %REQUEST_URI
은 search/2
입니다. 맞습니까? 이 경우 %THE_REQUEST
도 무엇입니까?
search/2
링크가있는 페이지가 home_page로 재 작성됩니다.
%{REQUEST_URI}
및 %{THE_REQUEST}
은 mod_rewrite의 변수입니다. 이 변수에는 다음이 포함됩니다.
%{REQUEST_URI}
에는 호스트 이름 뒤에 있고 쿼리 문자열 앞에 모든 것이 포함됩니다. URL http://www.example.com/its/a/scary/polarbear?truth=false
에서 %{REQUEST_URI}
은 /its/a/scary/polarbear
을 포함합니다. 이 변수는 모든 다시 쓰기 후에 업데이트됩니다.%{THE_REQUEST}
은 서버에 대한 전체 요청을 포함하는 변수입니다. 이것은 GET /its/a/scary/polarbear?truth=false HTTP/1.1
형태의 것입니다. 서버에 대한 요청은 그러한 요청의 수명주기 동안 정적이기 때문에이 변수는 다시 쓰기가 수행 될 때 변경되지 않습니다. 따라서 외부 요청에 무언가가 포함 된 경우에만 다시 작성하려는 특정 상황에서 유용합니다. 무한 루프가 발생하는 것을 막기 위해 자주 사용됩니다.전체 변수 목록은 here입니다.
귀하의 경우에는 search/2?search=x&search_by=y
에 대한 링크가 있습니다. 내부적으로 이것을 index.php?search=x&search_by=y&page_no=2
으로 다시 쓰려고합니다. 다음과 같은 규칙이 작업을 수행 할 수 있습니다
RewriteRule ^search/([0-9]+)$ /index.php?page_no=$1 [QSA,L]
첫 번째 인수이 들어오는 외부 요청을 일치 그런 다음 /index.php?page_no=2
에 다시 작성됩니다.. QSA
(쿼리 문자열 추가) 플래그는 기존 쿼리 문자열을 다시 작성된 쿼리 문자열에 추가합니다. 결국 /index.php?search=x&search_by=y&page_no=2
으로 끝납니다. L
플래그는 다시 쓰기의 '라운드'를 중지합니다. 그것은 단지 최적화 일입니다.
대단히 감사합니다. 한 번 더 질문, 내가 RewriteRule^search/([0-9] +) $ 할 때 링크를 만들 때 추가 한 쿼리와도 일치하려고합니까 : search/2? search = x & search_by = y. –
'?'뒤에 모든 것이 쿼리 문자열입니다. 'RewriteRule'의 첫 번째 인수에서 쿼리 문자열이 일치하지 않습니다. QSA-flag를 사용하기 때문에 원래의 쿼리 문자열은 '통과하여'다시 작성된 URL에서 원래 URL에서 사용할 수있는 것처럼 사용할 수 있습니다. – Sumurai8
RewriteCond % {REQUEST_URI} ^/search/ RewriteRule^([A-Za-z-0-9 -] +) /? $ kl.php? $ 1 [L, NC, QSA] 내 내부 링크 :/search? ($ _ SERVER [ 'QUERY_STRING'] –
- RewriteCond % {REQUEST_FILENAME}! -fRewriteCond % {REQUEST_URI} ^/Home_Page/([A-Za-z-0-9 -] +)/([0-9] +) $ -RewriteRule^([ 0 - 9 -] +) /? $ kl.php? $ 1 & page_no = $ 2 [L, NC] –
RewriteCond % {REQUEST_FILENAME}! -f RewriteCond % { REQUEST_URI} ^/Home_Page/([A-Za-z-0-9 -] +)/([0-9] +) $ RewriteRule^([A-Za-z-0-9 -] +)/[0-9] +) /? $ kl.php? $ 1 & page_no = $ 2 [L, NC] –
게시물의 수정 버튼을 사용하여 해당 정보를 편집하십시오. 보시다시피 댓글에서 읽을 수 없습니다. . 편집 필드 위에있는 버튼을 사용하여 코드 형식을 지정하십시오. 철자에 조금주의하십시오. – Sumurai8