여기htaccess로 다시 쓰기 규칙에 영향을 미치는하지 GET은
샘플 코드 내 .htaccess
파일의 샘플입니다
RewriteEngine On
RewriteRule ^home/?$ index.php?intro=true [L]
RewriteRule ^home/([^/]*)$ index.php?location=$1&intro=true [L]
RewriteRule ^wedding/?$ wedding.php [L]
RewriteRule ^wedding/([^/]*)$ wedding.php?location=$1 [L]
을 그리고 여기에 모두 index.php
과에 소개되는 몇 가지 예제 코드 wedding.php
페이지 :
index.php를 :
if(!$_GET["location"]) { $location = "London"; } else { $location = ucwords($_GET["location"]); }
[....]
<h1>Ben Pearl, <?php echo $location; ?> Magician</h1>
wedding.php은 :
if(!$_GET["location"]) { $location = "London"; } else { $location = ucwords($_GET["location"]); }
....
<h1><?php echo $location; ?> Wedding Magician</h1>
$location
문자열이 $_GET
값 'location
'에 의해 영향을해야 일이 일어날 것으로 예상되는 무엇.
무엇
다시 쓰기를 무슨 일이 일어나고 index.php
에 잘 작동; 사용자가 example.com/home/place로 이동하면 $location
은 place
으로 바뀝니다.
그러나 위의 스크립트가 붙여진 페이지가 포함 된 모든 다른 페이지에서 문자열은 "london"으로 대체되며 페이지가 $_GET
데이터를받지 못했고 다시 쓰기 규칙이 올바르게 작동하지 않는다는 것을 의미합니다.
낯선 사람은 내 localhost
에서 똑같은 코드가 변경되지 않고 그대로 작동한다는 것입니다.
100 % 확실하기 때문에 스크립트 상단에'var_dump ($ _ GET)'을 시도하여'$ _GET' 배열의 내용을 정확히 보았습니까? 그런 다음 위치 키가 존재하지 않는다고 말할 수 있습니다. – Lee
예. 어떤 HTML 앞에 놓고'array (0) {}'를 반환했습니다; 홈 페이지에서 'array (2) {[ "location"] => 문자열 (6) "place"[ "intro"] => string (4) "true"}' – Ben
을 게시 할 수 있습니다. 작업 URL/경로 ('/ wedding/...')? – jeroen