디렉토리에서 하위 디렉토리로 페이지를 어떻게 리디렉션합니까?

디렉토리에서 하위 디렉토리로 페이지를 어떻게 리디렉션합니까?

나는 최근에 내 웹사이트의 모든 콘텐츠를 디렉토리에 있던 것에서 www.mysite.com/shop루트 디렉토리로 옮겼습니다. 이는 /shop디렉토리가 있는 페이지를 방문하라는 요청을 루트 디렉토리의 동일한 페이지로 다시 리디렉션해야 함을 의미합니다 .

www.mysite.com/shop/categories/washroom

에게

www.mysite.com/categories/washroom

이전에 디렉토리를 사용했던 내 사이트의 모든 페이지에서 이런 일이 발생해야 했습니다 /shop.

나는 여기에 다음과 같은 해결책을 얻었습니다.

RedirectMatch (^/shop/)(.*) http://www.mysite.com/$2

그리고 그것은 완벽하게 작동하지만 이제는 디렉토리에 있는 이전 버전의 소프트웨어를 사용하도록 다시 전환해야 했기 /shop때문에 지금은 완전히 반대 방향의 리디렉션이 필요합니다.

www.mysite.com/categories/washroom 

에게

www.mysite.com/shop/categories/washroom 

누구든지 나를 도와줄 수 있나요?

답변1

다음을 시도해 볼 수 있습니다.

RedirectMatch (^/categories/washroom/)(.*) http://www.mysite.com/shop/categories/washroom/$1

그게 효과가 있나요?

답변2

논리를 반대로 바꾸세요.

RewriteEngine on
RewriteCond %{REQUEST_URI} !^/shop
RewriteRule ^/(.*)$ http://%{SERVER_NAME}/shop/$1 [L,R]

관련 정보