문제는 어떻게 해결해야 하는 이유 재작성 규칙을되지 않을 적용하여 아파치는?

StackOverflow https://stackoverflow.com/questions/215316

  •  03-07-2019
  •  | 
  •  

문제

나는 tomcat6 웹 응용 프로그램 실행으로 아파치 httpd 프런트 엔드.내가 사용하여 mod_proxy 및 mod_proxy_ajp 전달하는 요청을 톰캣.내 서버가 실행하는 명령.이제 내가 사용하려고 mod_rewrite 를 제거하는 최고의 www,그래서는 정식 웹 사이트 url http://domain.comhttp://www.domain.com

나의 번호를 사용하는 방법에 대한 자습서 mod_rewrite 지만,나는 얻을 수 없습니다 다시 쓰기 작동합니다.고 재작성 규칙에서.htaccess 파일(후 수정 나의/etc/apache/사이트를 사용할 수 있/default 파일의 설정하는 AllowOverride all).고 재작성 규칙에 apache2.conf,httpd.conf,그리고 다시 작성되었습니다.conf.나의 모든 시도와 함께 이러한 재작성 로깅을 켜져 있습니다.로그 파일이 만들어진,그러나 아파치가 서면에 아무것도니다.내 생각에는 어쩌면 mod_proxy 어떻게든 방지하는 재작성 규칙을 사용되는,그래서 나를 비활성화하는 것 뿐만 아니...그리고 나는 아직도 얻을 수 없음 다시 작성,그리고 아무것도 로그를 보실 수 있습니다.

나는 이 시점에서 절대적으로 아무 생각이 무엇을 하려고 다음에.나는 어떻게 해결에 대한 왜 아파치 사용하지 않 내 재작성 규칙?

참고를 위해,여기에 내 재작성 지침:

<IfModule mod_rewrite.c>

    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^www.domain.com$ [NC]
    RewriteRule ^(.*)$ http://domain.com/$1 [R=301,L]
    RewriteLog "/var/log/apache2/rewrite.log"
    RewriteLogLevel 3

</IfModule>

편집:응답을 아래에게 도움이 나 특정한 경우,그러나 아마 도움이 지역 사회에 대한 답변으로는 방법에 대해 문제를 해결할 아파치 지시어에서 일반적입니다.예를 들어,거기에 사용할 수 있도록하는 방법으로 로깅하기 어려는 것을 말해하는 지시어를 적용되는 순서로 요청이 들어오니까?

편집 2:내가 받은 것을 이제 작동합니다.내 가상호스트가 되지 않은 꽤 바로 설정,그리고 내가 또한지 재작성 regex 오른쪽.여기에는 최종 재작성 지침을 작동:

<IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteCond %{HTTP_HOST} ^www\.domain\.com [NC]
        RewriteRule ^(.*)$ http://domain.com$1 [L,R=301]
</IfModule>
도움이 되었습니까?

해결책

하려는 귀하의 질문에 대답:디버깅하는 아파치는 작업을 조정할 수 있습니다 LogLevel 을 낮은 수준(어쩌면 debug).하지만 경우에 당신을 넣 debug 비활성화할 경우 로그인 모듈에 대한 질문에 당신이 어떤 메시지에서습니다.예를 들어,기본값 [RequestLogLevel][2] 0,예를들면,모듈록 어떤 메시지입니다.나는 당신이 살고 있고 그것은 3 지 RoBorg 했다 그것을 변경하기 9 는 어쩌면 너무 낮습니다.

하려고 sove 의 문제:방법의 변화를 통하여 이루어진 당신은 다시 호스트명을 사용하여 역 양식 경우에 보면 호스트 이름은 당신이 무엇을 원하지 않으면 그것을 변경하는 호스트 이름을 원합니다.다음과 같서에 명시된 URL 재작성 가이드-Apache HTTP Server 에서 아파치 사이트:

정규 호스트명

설명:의 목표는 이 규칙은 힘의 사용이 특정 호스트명 기본 설정하는 다른 호스트명 될 수 있습에 도달하는 데 사용되는 동일한 사이트입니다.예를 들어,당신을 강제로 의 사용 www.example.com 대 예입니다.com 사용할 수 있습니 변형 의는 다음과 같은 조리법이다.솔루션:

# To force the use of 
RewriteEngine On
RewriteCond %{HTTP_HOST}   !^www\.example\.com [NC]
RewriteCond %{HTTP_HOST}   !^$
RewriteRule ^/(.*)         http://www.example.com/$1 [L,R]

에서 자신의 예를 들어,그들은 변화에서 example.com 하기 www.example.com 하지만 당신은 아이디어를 얻었다.단지 그것을 조정한 경우입니다.

다른 팁

    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^www.domain.com$ [NC]
    RewriteRule ^(.*)$ "http\:\/\/domain\.com\/$1" [R=301,L]

</IfModule>

동일한 문제는 내 서버지만이 일

도 증가하는 로그 수준까지 9(최대).
수은 아파치에는 적절한 권한 로그 파일(는 경우이지만 그것을 만들어진 것,그것을 가능성이 그것을 쓸 수 있을것도).
다른 재작성 규칙,아무 조건으로,예를 들어 RewriteRule .* www.google.com [RL]

에는 컨텍스트는 이러한 규칙은 배치?수도 있습 배의 밑에 그들을 다른 가상호스트,예를 들어.려 넣어 외부 어떤 컨테이너가 있는 경우 단지 하나의 도메인을 테스트하고 있습니다.

어떤 경우에,거의 대안을 달성하는'no-www',구성에서 두 개를 사용하여 가상호스트를,하나에 대한 www 와는 다른 대한'아니 www'.www 리디렉션 중 하나를 다른 하나:

<VirtualHost *:80>
    ServerName www.domain.com
    Redirect permanent / http://domain.com
</VirtualHost>


<VirtualHost *:80>
    ServerName domain.com
    #The rest of the configuration (proxying, etc.)
</VirtualHost>
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top