2014-06-05 2 views
2

www가 아닌 ​​모든 요청을 내 사이트로 www 리디렉션하려는 경우. 내가해야 할 일은 .htaccess 파일에 다음 코드를 추가하는 것입니다.htaccess를 사용하여 www가 아닌 ​​www를 www가 아닌 ​​하나의 하위 디렉토리로 리디렉션하십시오.

RewriteCond %{HTTP_HOST} ^mydomain\.com [NC] 
RewriteCond %{REQUEST_URI} !^/subfolder 
RewriteRule .* http://www.mydomain.com%{REQUEST_URI} [R=301,L] 

문제는 내가 예를 들어 mydomain.com/products-1 (mydomain.com/products?category=1에 대한 숨겨진 URL)을 위해 쓸 때, 모든 매개 변수는 그들이에 지정된 경우에도, 가시가 있다는 것입니다 .htaccess 파일이 있고 www.mydomain.com/products-1?category=1의 출력 URL (리디렉션 후)이 표시됩니다.

어떻게 해결할 수 있습니까? 위의 .htaccess 코드에 문제가 있습니까?

+0

제목에 하나의 하위 도메인이 있지만 코드에 디렉토리가 나열되어 있습니까? 이 문제는 하위 도메인 문제 (sub.example.com) 또는 디렉토리 문제입니까? example.com/sub? – jeffatrackaid

+0

하위 디렉토리 문제 (example.com/sub)입니다. 미안하지만 내가 분명하지 않다면. – RenatoB

+0

전체 .htaccess입니까, 아니면 더 많은 규칙이 있습니까? – anubhava

답변

0

한번에 변경하기 RewriteRule : 그것은 모두를 잡을 것 때문에

RewriteCond %{HTTP_HOST} !^www\.example\.com [NC] RewriteCond %{REQUEST_URI} !^/subfolder RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]

I .domain.com에 *이 선호합니다. 이것이 원하는 것이 아니면 원래 HTTP_HOST 규칙을 사용하십시오. 내 논리가 오늘 아침을 작동하면

,이 규칙과 일치하지 않는 모든 요청을 다시 작성해야합니다

www.example.com 및

/하위 폴더

에 www가 포함되어 있지 않습니다 .domain.com/URI

+0

하지만 URL에있는 "가시적 인 매개 변수"문제도 해결할 수 있습니까? – RenatoB

+0

위의 규칙은 보이는 매개 변수와 관련이 없어야합니다. 맞지 않을 수도있는 다른 다시 쓰기 규칙이있는 것 같습니다. – jeffatrackaid

+0

알아요,하지만 제가 가지고있는 문제는 www가 URL에 추가 된 후 (위에 나열된 코드를 사용하여) 현재 숨겨져있는 URL 매개 변수가 표시된다는 것입니다. – RenatoB

관련 문제