이것이 작동하는 이유 :
RewriteRule (.+)/$ $1
그리고이 작품 :
RewriteRule (.+)/$ $1 [L] #bla bla bla
그러나 이것은 작동하지 않습니다.
RewriteRule (.+)/$ $1 #bla bla bla
이것이 작동하는 이유 :
RewriteRule (.+)/$ $1
그리고이 작품 :
RewriteRule (.+)/$ $1 [L] #bla bla bla
그러나 이것은 작동하지 않습니다.
RewriteRule (.+)/$ $1 #bla bla bla
답변:
마지막 규칙은 주석이 실제로 주석이 아니기 때문에 작동하지 않습니다. htaccess로의 댓글은 시작해야 로모그래퍼 #
하지 임의 어디서나 (행의 시작에 있어야합니다)합니다.
두 번째 경우에는 #bla bla bla
이 RewriteRule
지시문 의 네 번째 매개 변수로 해석되며 이는 단순히 무시됩니다.
마지막 경우 #bla bla bla
에는 세 번째 매개 변수로 해석되며 RewriteRule
의 경우 플래그가 이동하는 위치 #bla bla bla
이며 mod_rewrite가 이해하는 플래그가 아니므로 오류가 발생합니다.
#
줄의 "시작"에 있어야 하지만 앞에 공백이있을 수 있습니다. (초과) .htaccess의 공백은 무시되며 줄의 시작 부분을 포함하여 어디에서나 "뿌릴 수 있습니다". 즉, #
행에서 공백이 아닌 첫 번째 문자 여야합니다. 나는 #
가장 왼쪽 열에있는 문자 1이어야 한다고 잘못 생각 했었다!
아파치의 설정 파일 형식 (이 중 .htaccess
파일이 하나의 예입니다) 기술적으로 인라인 주석 만 전체 줄 주석 (즉, 선 지원하지 않는 시작 A를을 #
).
해시 문자 "#"로 시작하는 줄은 주석으로 간주되며 무시됩니다. 구성 지시문 다음 줄에는 주석을 포함 할 수 없습니다. - 공식 Apache 2.4 매뉴얼
그러나 혼란스럽게도 각 모듈은 지시어에 대한 입력을 구문 분석 mod_rewrite
할 수 있습니다. 따라서 다음으로 시작하는 모든 줄에서 수행 할 작업을 결정합니다.RewriteRule
나는 확실히 모르지만 내 생각 즉 mod_rewrite
사후이 모든 것을 무시 [flags]
하고는 #
전혀 사실 필요가 없습니다.
그러나 가장 좋은 방법은 항상 자신의 줄에 주석을 유지하는 것입니다. 주석을다는 지시문이 무엇이든 작동하기 때문입니다.