2013-01-10 1 views
1

추한 URL을보다 친숙한 URL로 변환하는 CMS 시스템이 있습니다.IIRF/APACHE 다시 쓰기 조건 쿼리 문자열과 함께 실패

지금까지 instanstance, 대신에이 같은 페이지 URL 인 무언가 :

/pagebase.php?id=3644 

나는 더 친절하게 각 페이지의 URL 쓰기 설정을 가지고있다. 예를 들어

:

RewriteRule ^/events$ /pagebase.php?id=3644 [I] 

그래서 domain.com/events에서 사용자 유형들이 URL 위에 올려 때.

이 작업을 수행 할 수 있도록 추가 쿼리 문자열을 추가해야하는 곳을 제외한 거의 모든 페이지에서 작동합니다. 이?을 참조하지 않기 때문에

www.domain.com/events?y=2010=&m=&1d=2 

유일한 문제는 URL을 쓰기 이상형

www.domain.com/pagebase.php?id=3366&y=2010=&m=&1d=2. 

로 다시 것이다 실패 Y 쿼리 문자열로 = 2 = 2010 = & m = & 1D , URL의 일부로보고 실패합니다.

쿼리 문자열을 전달할 수 있도록 다시 쓰기 파일을 수정해야합니다.

내가 RewriteRule의 같은 것을하고 싶지

^/events- % 쿼리 문자열 % $ /pagebase.php?id=3644 + % 쿼리 문자열 % [I]

이 경기에서 쿼리 문자열을 제거

하지만 그것을 서면 url의 끝에 추가합니다. 나는 URL을 어떻게 수정하는지에 대한 충분한 지식이 없다.

다음은 내 재 작성 파일의 예입니다.

RewriteRule ^/events$ /pagebase.php?id=3644 
RewriteRule ^/faqs$ /pagebase.php?id=3659 
RewriteRule ^/gallery$ /pagebase.php?id=3645 
RewriteRule ^/gifts$ /pagebase.php?id=3646 

내가 모든 페이지에서 작동 뭔가가 필요, 내가 특정 쿼리 문자열을 처리하기 위해 각 규칙을 수정해야 싶지 않아, 난 그냥 통해 쿼리 문자열을 전달하는 일반적인 솔루션을 원한다.

+0

추가] [L, QSA]을 RewriteRule의 문에. "L"은 마지막 (다시 쓰기를 계속하지 말 것)이고 "QSA"는 URL에 매개 변수를 추가하기위한 쿼리 문자열 추가입니다. –

+0

그건 효과가없는 것 같습니다. 어떻게 보일까요? 이와 같이 RewriteRule ^/events $ /pagebase.php?id=3644 [L, QSA] – matwonk

+0

질의 문자열과 QSA를 결합 할 때 문제가있을 수 있습니다. 이 트릭을 할 것이라고 생각 :'RewriteRule ^/events $ /pagebase.php?id=3644&%{QUERY_STRING} [L]' –

답변

1

당신은 선택 쿼리 문자열 일치 을 시도 할 수 있습니다, 그리고 그것은 [QSA] 수정에 의해 추가했다 :

RewriteRule ^/events(\?.*)?$ /pagebase.php?id=3644 [QSA,L] 
RewriteRule ^/faqs(\?.*)?$  /pagebase.php?id=3659 [QSA,L] 
RewriteRule ^/gallery(\?.*)?$ /pagebase.php?id=3645 [QSA,L] 
RewriteRule ^/gifts(\?.*)?$ /pagebase.php?id=3646 [QSA,L] 
관련 문제