/? lang = en을 / en으로 리디렉션하려면 어떻게해야합니까?

Jun 25 2019

다국어 웹 사이트를 한 페이지로 리디렉션하는 데 문제가 있습니다. htaccess 로의 리디렉션이 제대로 작동하지 않습니다. 이 작업을 수행하는 방법에 대한 도움이 필요합니다. 내 htaccess에서이 두 줄을 추가하면

RewriteCond %{QUERY_STRING} ^lang=en$
RewriteRule ^ /en? [R=301,L]

리디렉션이 작동하지만 mysite.com/en에서 404를 찾을 수 없음을 표시합니다. 누군가 이걸 도와 주나요?

답변

anubhava Jun 28 2019 at 11:50

문제에 표시된 리디렉션 규칙이 제대로 작동합니다. 봇을 처리하려면 재 작성 규칙도 필요합니다 /en.

RewriteEngine On

RewriteCond %{ENV:REDIRECT_STATUS} ^$ RewriteCond %{QUERY_STRING} ^lang=([a-z]{2})$
RewriteRule ^ /%1? [R=301,L]

RewriteRule ^([a-z]{2})/?$ ?lang=$1 [QSA,L]
Jojoma Jun 26 2019 at 10:18

브라우저가 mysite.com/en에 도착하면 리디렉션이 작동하므로 리디렉션 방법이 아니라 사이트의 / en에 콘텐츠가없는 이유가 궁금합니다. 조사해야합니다.