2013-10-30 2 views
0

최종 사용자가 mod_rewrite 규칙을 감지 할 수 있습니까?
프록시 또는 리디렉션 응답을 보내지 않고 브라우저 유형에 따라 사용자를 리디렉션하는 가장 좋은 방법은 무엇입니까?사용자 에이전트를 기반으로 mod_rewrite를 감지 할 수 있습니까?

하나의 브라우저 유형을 가진 사용자가 올바른 방문 페이지를 얻고 다른 브라우저 유형의 사용자가 자신의 브라우저 유형을 갖도록하기 위해 노력하고 있습니다. 그러나, 그것은 감지 할 수 있어야합니다.

모든 사이트 사용자는 "www.mysite.org/index.html"을 볼 수 있지만 "index.html"은 사용자 에이전트 문자열을 기반으로 다른 페이지가되지만 리디렉션 상태와 같은 표시기는 필요하지 않습니다. 3xx) 만 가능 200.

[PT]를 추가하거나 [R]을 추가하고 200을 보냅니 까? 문제가 발생했을 때를 대비해 200을 보내고 싶지는 않지만 사용자가 로컬 리디렉션을 알리는 것을 원하지 않습니다. 나는 서버 측 설정이 숨겨져 있다고 생각했지만 누군가 응답 코드에 의해 감지 될 수 있다고 지적했다.

Examples I found; 

    # MS Internet Explorer - Mozilla v4 
    RewriteEngine On 
    RewriteCond %{HTTP_USER_AGENT} ^Mozilla/4(.*)MSIE 
    RewriteRule ^index\.html$ /index.IE.html [L] 

    # Netscape v6.+ - Mozilla v5 
    RewriteCond %{HTTP_USER_AGENT} ^Mozilla/5(.*)Gecko 
    RewriteRule ^index\.html$ /index.NS5.html [L] 

    # Lynx or Mozilla v1/2 
    RewriteCond %{HTTP_USER_AGENT} ^Lynx/ [OR] 
    RewriteCond %{HTTP_USER_AGENT} ^Mozilla/[12] 
    RewriteRule ^index\.html$ /index.20.html [L] 

답변

0

이이 작동하는 방식의 일반적인 흐름이다

  1. 브라우저는
  2. 서버가 요청을받는 서버에 요청을 보냅니다 (이 시점에서, 브라우저는 응답을 기다리고 있습니다)
  3. 요청 mod_rewrite는 그들
  4. 의 하나의 mod_rewrite 규칙이 트리거 도착되는, 다수의 모듈을 통과하고, URI는 재 기입 다른 URI에
  5. URI가 제공되고 그 내용이 브라우저로 반환됩니다.

지금까지 브라우저에 관한 한,이 그것을보고 모든입니다 :

내가 요청을 보낼
  • 는 내가 보낸 그 URL 콘텐츠를 URL을 얻을
    1. 내가 한

    첫 번째 워크 플로에서 2, 3, 4 단계는 서버 끝에서만 발생하므로 브라우저는 아무 것도 모릅니다.

    따라서 PT 또는 R (브라우저에 다른 곳으로 이동하여 실제로 콘텐츠가있는 위치로 이동하게 함)가 필요하지 않습니다.

  • 관련 문제