2013-06-17 2 views
0

RewriteRule에 문제가 있습니다. 결과를 쿼리하기 위해 내 검색 페이지에 대한 예쁜 URL을 작성했습니다. 그러나 $_GET['type'] 변수가 페이지로 전송되지 않습니다. 이것은 내 로컬 WAMP 서버에서 완벽하게 작동하지만 내 라이브 호스팅 서버에서 결과를 반환하지 않습니다.HTACCESS RewriteRule - Pretty URL에서 쿼리 문자열을 보내지 않음

예컨대 http://..com/search/searchType/ 검색 유형이 $_GET['type']이고 페이지로 전송됩니다. 텍스트 '검색'로 시작 RewriteRule을 깨고 파일 이름 search.php과 충돌이 있기 때문에 문제가

RewriteEngine On 
RewriteRule ^property/(.*)/(.*)/([0-9]+)/$ view_property.php?type=$1&id=$3 [L] 
RewriteRule ^search/(.*)/ search.php?type=$1 [L] 
+0

프로덕션 서버의 Apache 구성이 htacess를 통해 재정의 할 수 있습니까? –

+0

'RewriteRule'은 당신이 말하는 URL이라면 예쁜 URL을 생성합니다. 그렇지 않으면 나는 확신 할 수 없다 (나는 묻는다). 'httpd.conf'에 그러한 기능을 사용할 수 없게하는 특정 설정이있을 수 있습니까? 이 문제를 테스트하려면 로컬 서버에서이 기능을 비활성화 할 수 있습니다. –

+0

다시 쓰기 규칙은 예쁜 URL을 만드는 것이 아니라 예쁜 URL을 적절한 스크립트로 리디렉션하는 것입니다. 그래서 예쁜 URL로가는 GET을 가지고 있지만 예쁜 URL이 제대로 리디렉션되지 않으면 올바르게 전달 된 데이터를 얻지 못할 것입니다. 테스트 환경에서 작동하지만 프로덕션 환경에서는 작동하지 않는다고 말하면 내 첫 번째 경향은 웹 서버 구성을 살펴 보는 것입니다. –

답변

1

을 다음과 같이

.HTACCESS이다.

이 문제를 발견하고 더 많은 연구를 한 결과 을 포함하고있는 것이 발견되어 mod_negotiationMultiViews을 사용할 수 없음을 발견했습니다.

내 라이브 호스트 서버에서 사용하도록 설정되었으며 내 로컬 호스트에서 사용 중지되어 있어야합니다. 나는 곧 발견하고 업데이트 할 것이다.

또 다른 해결 방법은URL의 이름을 ^search/ 또는이 충돌을 제거하기 위해 현재 다른 파일로 존재하는 다른 이름으로 바꾸는 것입니다.