htaccess 다시 쓰기 규칙을 사용하여 호스트 이름을 넘은 모든 것을 가져 와서 인수로 사용합니다. 예를 들어, http://example.com/one을 http://example.com/category.php?cat=one호스트 이름 과거의 모든 것을 잡기위한 htaccess rewriterule
으로 처리해야합니다. 간단해야하지만 조합을 찾을 수는 없습니다. 감사
htaccess 다시 쓰기 규칙을 사용하여 호스트 이름을 넘은 모든 것을 가져 와서 인수로 사용합니다. 예를 들어, http://example.com/one을 http://example.com/category.php?cat=one호스트 이름 과거의 모든 것을 잡기위한 htaccess rewriterule
으로 처리해야합니다. 간단해야하지만 조합을 찾을 수는 없습니다. 감사
이 내가 생각 해낸 무엇인가?
시도 뭔가 : 당신은 너무 따라 쿼리 문자열을 전달 B,QSA
에 B
플래그를 변경할 수 있지만주의해야 할 경우
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ category.php?cat=$0 [B]
누군가가 다음 GET 인수를 전달할 수 있음 cat
, 이는 다시 작성에서 설정 한 내용보다 우선합니다. 필요한 경우 해당 상황에 대한 해결 방법이 있지만 그렇지 않은 경우에는 해결 방법이 있습니다. 그것을 개선 할 수있는 방법을 참조
RewriteRule ^/?([^\./]*)[:;,\.]*$ category.php?cat=$1 [L,NS]
누구 :
감사합니다. Tim. 어디서나 [B] 깃발을 찾을 수 없습니다. 그것을 설명하거나 그것에 대한 정보를 가르쳐 주시겠습니까? – Eric
아, 실제로 2.0 문서에서 단지 감시라고 생각했지만 소스를 보면 Apache 2.2까지는 실제로 존재하지 않습니다 ... 2.0이 사이트에있는 경우에는 사용하지 마십시오. 어쨌든, 그것은 역 참조를 피할 수 있습니다. 그래서 어떤 이유로 든 당신이'example.com/this & that'을 가지고 있다면 앰퍼샌드가 인코딩 될 것이기 때문에'cat = this'와'that ='을 재 작성으로 얻지 못할 것입니다. –