2011-02-10 3 views
0

키 : 쿼리 문자열에서 ?resolution=을 제거, 본질적으로mod_rewrite를 쿼리 문자열, 나는 주어진 URL 변경하기 위해 노력하고있어 한마디로

http://mydomain.com/category/title/attachment/randomstring_320x480 

으로

http://mydomain.com/category/title/attachment/randomstring_?resolution=320x480 

과에 가치를 추가 경로.

category, title 및 randomstring 값은 동적이지만 배치는 항상 동일해야합니다.

중요한지는 모르겠지만 WordPress에서 사용되고 있습니다.

나는 다음과 같은 시도했지만 난 그냥 얻을 404 :

어떤 도움이 감사
<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/

RewriteCond %{QUERY_STRING} ^resolution=([0-9]{3,4}x[0-9]{3,4})$ 
RewriteRule ^$ ${REQUEST_URI}%1/? [R] 

RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
</IfModule> 

)

답변

1

음, 시행 착오 (독서 RewriteLog 출력의 많은 후), I 마지막으로이 작업을 얻은 다음 원래의 솔루션

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteRule ^index\.php$ - [L] 

RewriteCond %{QUERY_STRING} ^resolution=(.*)$ 
RewriteRule . %{REQUEST_URI}%1? [R=301,L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
</IfModule> 

주요 문제 :

  • RewriteRule 플래그에 ,L 포함하지 RewriteRule
  • 단지 ? 대신 /?를 사용하여 RewriteRule
  • 대신 .^$를 사용하여 RewriteRule?을 포함, 호기심있는 사람들을위한

요청에 QUERY_STRING이 남아 있지 않도록합니다.

관련 문제