2009-12-30 4 views
2
CheckSpelling On 

    RewriteEngine on 
    RewriteCond  %{HTTP_HOST}      ^([^.]+)\.site\.com$ 
    RewriteCond  /home/%1/       -d 
    RewriteRule  ^(.+)        %{HTTP_HOST}$1 
    RewriteRule  ^([^.]+)\.site\.com/media/(.*)  /home/$1/data/media/$2 
    RewriteRule  ^([^.]+)\.site\.com/(.*)   /home/$1/www/$2 

CheckSpelling On (mod_speling)은 www.example.com 일 때 정상적으로 작동합니다. 그러나 Rewrites가 발생할 때 작동하지 않습니다. 예를 들어 /home/test/www/index.html 파일이 있습니다. test.example.com/INDEX.html을 수행하면 test.example.com/index.html으로 수정되지 않지만 www.example.com/INDEX.html (/home/www/ 폴더가없는 경우)은 www.example.com/index.html으로 수정됩니다.함께 작동하는 mod_speling 및 mod_rewrite?

mod_rewrite를 먼저 처리하고 재 작성을 사용하면 checkspelling을 사용하지 않는 것 같습니다. 행운을 빌어 다른 주문으로 모듈을로드하려고했습니다.

답변

0

mod_spelingmod_rewrite 규칙을 통과하는 맞춤법 대안을 찾을 수 없습니다. 리디렉션 [R]을 사용하면 제대로 작동하지만 실제 디렉토리를 숨기려는 것처럼 보입니다.

mod_speling 대신 사용자 정의 404를 고려할 수 있습니다.

+0

이상합니다. 나는 6 개월 전에 일하는 설정을 가지고 있었고, 내가 어떻게했는지 잊어 버렸습니다. 그 이후로 나는 사용자 정의한 것의 50 %를 잃어 버렸습니다. [[ – Brian

0

mod_speling 및 mod_rewrite는 디렉토리 컨텍스트 (또는 htaccess)에서 다시 쓰기가 사용될 때 같은 단계에서 작동합니다. 이 단계에서는 처음으로 아무 조치도 취하지 않고 모두 참여 모듈을 실행합니다.

디렉토리 당 다시 쓰기는 [PT] 플래그가있는 것처럼 항상 작동합니다. 다시 쓰기가 디렉토리 당 컨텍스트에없는 경우 [PT] 플래그를 추가하고 대체에 파일 이름 대신 URI를 사용하면 상호 운용이 가능해집니다.

관련 문제