.htaccess 다중 매개변수 항목에 대한 URL 재작성

.htaccess 다중 매개변수 항목에 대한 URL 재작성

나는 내 인생의 마지막 10시간을 이것에 소비했고 빙빙 돌고 있으니 누군가가 나를 도울 수 있기를 바랐습니다.

특정 URL을 다음과 같이 로드하고 싶습니다.

http://example.com/f/2011/image.png?attribute=small

이와 같은 형식의 URL이 도달하면 다음과 같이 서버에 도달하도록 다시 작성하고 싶습니다.

http://example.com/generate.php?f=2011/image.png&attribute=small

위의 질문에 따르면 내 질문은 두 가지입니다.

  1. 위의 요구 사항을 충족하기 위해 htaccess에서 URL을 어떻게 다시 작성할 수 있습니까?
  2. 원래 URL에 속성 쿼리 문자열 매개변수가 없는 경우 htaccess를 통해 서버에 도달할 때 속성이 false/공백/등이 되도록 어떻게 보장할 수 있습니까?

답변1

RewriteEngine On
# If it's not an existing file...
RewriteCond %{REQUEST_FILENAME} !-f
# ...and it's not an existing directory...
RewriteCond %{REQUEST_FILENAME} !-d
# ...and it starts with "f/" then rewrite it to generate.php
RewriteRule ^f/(.*)$ generate.php?f=$1 [L,QSA]

두 개는 RewriteCond생략 가능합니다. 추가 정보:

RewriteRule

QSA 플래그

답변2

RewriteEngine On

RewriteRule ^([a-z]+)/([0-9]+)/image.png?attribute=small$ generate.php?f=$2/image.png&attribute=small&%{QUERY_STRING} [L]

답변3

일할 기회가 더 많은 곳은 다음과 같습니다.

RewriteEngine On
# If it's not an existing file...
RewriteCond %{REQUEST_FILENAME} !-f
# ...and it's not an existing directory...
RewriteCond %{REQUEST_FILENAME} !-d
# ...and it starts with "f/" then rewrite it to generate.php
RewriteRule ^([a-z]+)/([0-9]+)/image\.png$ /generate.php?f=$1 [QSA,L]

작동하는지 알려주세요.

관련 정보