Apache에서 부정적인 규칙을 만드는 방법은 무엇입니까?

Apache에서 부정적인 규칙을 만드는 방법은 무엇입니까?

클릭을 다른 사이트로 리디렉션하도록 구성한 웹 호스트가 있습니다.

<VirtualHost *:80>
  Redirect 301 / http://other.site/
</VirtualHost>

이제 리디렉션해야 하는 방식으로 재구성하고 싶습니다.특정 가상 디렉터리를 제외한 모든 클릭. 직관적으로 다음과 같이 생각합니다.

<VirtualHost *:80>
  <Location ! "/subdir">
    Redirect 301 / http://other.site/
  </Location>
  ...configuration for /subdir...
</VirtualHost>

아파치에서 이것이 가능합니까? 내가 그 구성을 이해한 바에 따르면 부정적인 규칙에는 그다지 강력하지 않습니다.

답변1

예, 가능합니다. 당신은 그것을 사용할 수 있습니다리디렉션 일치그리고모듈 별칭Apache 모듈은 아래와 같습니다.

<VirtualHost *:80>
    ServerName _default_
    RedirectMatch 301 ^/(?!subdir...)(.*) http://other.site/
</VirtualHost>

아니면 Apache를 사용할 수도 있습니다.모드 재작성모듈을 작성하고 다음을 수행하십시오.

<VirtualHost *:80>
    ServerName _default_
    RewriteCond %{REQUEST_URI} !^/subdir...
    RewriteRule (.*) http://other.site/ [L,R=301]
</VirtualHost>

관련 정보