2011-11-24 8 views
1

.htaccess에 정말 새롭습니다. 검색 문자열과 선택한 필터에 대한 복잡한 서재응 URL을 만드는 방법에 대해 궁금합니다..htaccess 및 seo 친숙한 검색 쿼리 문자열

현재 다음 코드를 사용하고 있습니다.

ReWriteRule ^search/(.*)/(.*) ?module=search&q=$1&page=$2 [L] 
ReWriteRule ^search/(.*)  ?module=search&q=$1 [L] 

필터 옵션을 추가 할 때 악몽이 시작됩니다. 다음 필터를 고려하십시오.

약식 : 없음, 이름, 날짜 + ASC, DESC. 카테고리 : 없음, 카테고리 ID. 검색 범위 : 전체 제목, 메시지, 저자.

모든 필터를 선택하면 Google 주소가됩니다.

원료 : www.site.com/?module=search Q = & & 시험 shortBy name_ASC = & CATID = 1 = & 찾아서 표제

서 우대 : www.site.com/ search/test/name_ASC/1/title/

이제는 전혀 복잡하지 않지만 어떻게 작동하는지 이해하고 싶습니다. 선택하지 않은 경우에도 모든 필터를 URL에 적용해야합니까? 아무 이유없이 긴 URL을 만들 수 있으므로 다른 접근 방법이 있어야한다고 생각합니다.

.htaccess에서 규칙을 어떻게 정의합니까? 내 예제에서와 마찬가지로, .htaccess 파일에 두 개 이상의 규칙을 작성하고 있습니다 (두 번째는 페이지 매김을위한 것입니다).

나는 지금 이것 같이 무언가를하기 위하여 생각할 수 있었다 모두 이것은 ^search/(.*)/(.*) ?module=search&$1=$2 [L]를 우아하게 보지 않는다. 이 문제 좀 도와 수 있다면

나는 기쁠 것이다. 나도 그렇듯이 .htaccess 초보자에게 몇 가지 경험을 나누어 주시면 감사하겠습니다.

+0

예 : 요청이 제출 된'index.php'? –

답변

4

아래 규칙을 .htaccess 파일 상단 (사이트의 루트 디렉토리)에두고 아래 옵션 중 하나를 선택하고 필요에 맞게 수정 한 다음 .htaccess 파일에 배치하십시오.

첫 번째 옵션은 대부분의 URL을 일치하지 않는 것이 좋습니다. 두 번째는 5 개의 디렉토리 만 가진 URL과 일치하지만 모든 매개자가 필요하므로 3 번째를 권합니다.

아래의 패턴이 우아한 보이지 않을 수 있지만

, 그것은 자세한 내용은 The Definitive Guide to Apache mod_rewrite

의 기능을 갖춘 솔루션이 apache docs 또는 일부 examples 또는 모든 경우에이 post

을보고, 나는 가정하고있다 요청은 index.php로 이동하므로 실제 페이지와 일치하도록 수정해야합니다.

이 섹션이 맨 위에 와야합니다.3 개 옵션

#for all 3 options these 2 lines should be at the top of the .htaccess file 
RewriteEngine On 
RewriteBase/

에 대한 htaccess로 파일 옵션 1

#1 if all parameters are optional, and you page (index.php) can handle blank parameters use 
RewriteRule ^([^/]*)/?([^/]*)/?([^/]*)/?([^/]*)/?([^/]*)/$ index.php?module=$1&q=$2&shortBy=$3&catID=$4&searchIn=$5 [L] 

옵션 2

#2 if all parameters are required use 
RewriteRule ^([^/]+)/([^/]+)/([^/]+)?([^/]+)/([^/]+)/$ index.php?module=$1&q=$2&shortBy=$3&catID=$4&searchIn=$5 [L] 

옵션 3

+0

문제는 이것이 유일한 페이지가 아니라는 것입니다. 옵션 1을 사용하고 싶습니다. 빈 매개 변수를 처리 할 수는 있지만,이 경우 URL을 = search/query // 4/news' 옵션 1로 보는 것을 좋아하지 않을 것입니다. 우아한 봐. 나는 그것에게 당신에게 대단히 감사하려고 노력할 것이다. – Revenant

관련 문제