2013-04-01 4 views
0

많은 부분을 살펴 보았지만 실제로 많은 것을 찾을 수는 없습니다. 전에 많은 문제없이 htaccess를 다시 작성했지만이 부분이 실패한 부분을 찾을 수 없습니다. 초기 URL과 관련이 있다고 생각하지만 작동하는 조합을 찾을 수 없습니다.CSS 경로 다시 쓰기

HTML :

<link rel="stylesheet" type="text/css" href="http://localhost/site/vnd/style/main.css?p=desktop"> 

htaccess로 :

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^style/([A-Z]+\.css)\?p=(.*)$ style/$2/$1 [R=301,L] 

(파일이 실제로 거주) 예상 리디렉션 : 정규식 테스터에서

style/desktop/main.css 

는 분할하고 다시 생성 그냥 아파치가 보는 것을 볼 수는 없으므로 디버깅하기가 어렵습니다. 나는 절대 경로와 상대 경로, 후행 및 후행 슬래시 등을 시도했다.

콘솔에서 리디렉션이 전혀 작동하지 않는다고 말하는 404가 출력되고 있으며 여전히 찾고있다. 원래 URL의 경우. 헤더 :

Request URL: http://localhost/Patterns/mvc/style/main.css?p=desktop 
Request Method: GET 
Status Code: 404 Not Found 

답변

1

RewriteRule s는 쿼리 문자열을 선택할 수 없습니다. 당신은 그것을 캡처하는 조건을 사용할 필요하고 적절하게 전달할 것 : 나는 QUERY_STRING 상태로 p 키를 이동했다, 나는 (규칙에 NC 플래그를 추가 한

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{QUERY_STRING} ^p=(.*) 
RewriteRule ^style/([a-z]+)\.css$ style/%1/$1.css [R=301,L,NC] 

공지 사항 이는 문자열의 대소 문자를 무시한다는 것을 의미합니다).

+0

와우. 내가 전에 어떻게 만난 적이 있니?! 고맙습니다! – Phix

+0

많은 사람들이 가지고 있지 않습니다 - 그리고 그들은 많은 사람들이보고 싶지 않은 공통된 질문입니다. 왜냐하면 그들은 무엇을 찾아야할지 모르기 때문입니다. 다행 당신을 위해 작동합니다. –

관련 문제