여기 내 .htaccess
파일에있는 내용입니다.preg_match에서이 패턴이 일치하는 동안이 패턴이 RewriteCond의 QUERY_STRING과 (과) 일치하지 않는 이유는 무엇입니까?
RewriteEngine on
RewriteCond %{QUERY_STRING} ^(run=[a-z0-9A-z]{13})$
RewriteRule %{QUERY_STRING} \? [L]
내가 run=4f13665700694
와 유사한 모든 QUERY_STRING
에 대한 QUERY_STRING
를 재 작성하고 아무것도하지 않고있다 뭐하는 거지 모든. URL 예 : http://thinkingmonkey.me/runs/?run=4f13665700694
. 따라서 RewriteCond가 일치해야합니다. 그러나 위의 방법은 효과가 없습니다.
하지만 패턴이 정확하다고 보았습니다. 이후 모두 preg_match
& RewriteRule
PCRE - Perl Compatible Regular Expressions
을 사용하십시오.
preg_match
을 사용해 보았습니다. 즉 성공적인 일치
1
:
$subject = "run=4f13665700694";
$pattern = "/^(run=[a-z0-9A-z]{13})$/";
echo preg_match($pattern, $subject);
하고
위가 출력 제외.이유를 모르겠습니다. 내가 여기서 무엇을 놓치고 있니?
"do nothing"이라고하면 "http : //thinkingmonkey.me/runs/?"로 다시 작성 하시겠습니까? – TerryE
@ 테리 예. 그러나 나는 여기서 문제를 해결했다. '% {QUERY_STRING}'은'RewriteRule'에서 일치 & 대체 될 패턴으로 사용될 수 없습니다. – ThinkingMonkey