Htaccess 리디렉션 폴더 및 URL 끝 제거

Htaccess 리디렉션 폴더 및 URL 끝 제거

를 사용하여 일부 URL을 리디렉션하려고 .htaccess하지만 성공하지 못했습니다. 문제는 URL의 서로 다른 두 부분을 리디렉션해야 한다는 것입니다.

다음은 리디렉션해야 하는 항목의 예입니다.

example.com/huawei-reparatie/huawei-mate-7-reparatie

다음으로 리디렉션되어야 합니다.

example.com/reparatie/huawei/huawei-mate-7

그래서 무엇을 해야 할까요:

  • huawei-reparatie다음으로 분할reparatie/huawei
  • -reparatie모든 URL 끝에 있는을 제거하세요 .

이것들은 동적 URL이므로 이것뿐만이 아닙니다. 이 모든 URL을 다양한 브랜드(예: huawei)와 다양한 장치(예: huawei-mate-7) 로 리디렉션해야 합니다.

누구든지 나를 도울 수 있기를 바랍니다.

답변1

요구 사항을 명확히 하려면 다음을 수행하십시오.

/first-second/text-to-keep-removethis

다음으로 리디렉션해야 합니다.

/second/first/text-to-keep

어디

  • first, 소문자 az 문자만 포함합니다 second.removethis
  • firstsecond단일 하이픈으로 구분됩니다 .
  • removethis단일 하이픈(역시 제거됨)이 앞에 붙고 항상 URL 경로의 끝에 나타납니다.
  • text-to-keep일련의 az 및 하이픈 문자입니다.

mod_rewrite를 사용하여 루트 파일 상단에서 다음을 시도해 보십시오 .htaccess.

RewriteEngine On

RewriteRule ^([a-z]+)-([a-z]+)/([a-z-]+?)-[a-z]+$ /$2/$1/$3 [R=302,L]

그만큼RewriteRule 무늬(첫 번째 인수)는 요청된 URL 경로와만 일치하고 슬래시 접두사는 제외되는 정규식입니다.

$n치환문자열은 해당 캡처링 그룹(괄호로 묶인 하위 패턴)에 대한 역참조입니다.RewriteRule 무늬.

초기 요청에 있는 모든 쿼리 문자열은 변경되지 않은 채 전달됩니다. 쿼리 문자열을 제거해야 하는 경우 플래그 QSD(쿼리 문자열 삭제)를 추가하세요.

이는 임시(302) 리디렉션입니다. 301(영구) 리디렉션으로만 변경하세요. 의도한 경우 제대로 작동하는지 확인한 후에만 가능합니다.

관련 정보