2009-12-30 2 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. Но это не работает, когда происходят перезаписи. Например, есть файл /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, и если он использует rewrite, он не проходит проверку. Я пробовал загружать модули в разные заказы без везения.

ответ

0

mod_speling не может найти альтернативы правописания, которые проходят через правила mod_rewrite. Он должен работать, если вы используете использование перенаправления [R], но похоже, что вы хотите скрыть фактические каталоги.

Вы можете рассмотреть обычай 404 вместо mod_speling.

+0

Странно. У меня была установка, которая работала 6 месяцев назад, я забыл, как и что я сделал. С тех пор я потерял 50% от того, что я настроил, [ – Brian

0

mod_speling и mod_rewrite работают в той же фазе, когда переписывание используется в контексте контекста (или htaccess). Эта фаза запускает все участвующих модулей, а не первый, кто предпримет какие-либо действия.

Переписывать в каждом каталоге всегда действует так, как если бы он имел флаг [PT]. Если ваши перезаписи не включены в контекст для каждого каталога, просто добавьте флаг [PT] и используйте URI вместо имен файлов в ваших подстановках, вероятно, получите их взаимодействие.

Смежные вопросы