2013-02-28 2 views
0

Я не специалист по перезаписи мод. я пытаюсь переписать несколько правил в .htaccess моего корневого каталога, которые заключаются в следующем:Переписывание нескольких правил в .htaccess

RewriteEngine On 

#HEADER REDIRECTION 
RewriteCond %{HTTPS} !=on 
RewriteCond %{HTTP_HOST} !^www\..+$ [NC] 
RewriteRule^http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 
#FINISH HEADER REDIRECTION 

#PREVENT IF NOT USER_AGENT 
RewriteCond %{REQUEST_METHOD} POST 
RewriteCond %{HTTP_USER_AGENT} ^$ 
RewriteRule .* - [F] 
#FINISH PREVENT IF NOT USER_AGENT 

#PREVENT UNEXPECTED USER_AGENT STRING 
RewriteCond %{HTTP_USER_AGENT} ^Custo [OR] 
RewriteCond %{HTTP_USER_AGENT} ^FlashGet [OR] 
RewriteCond %{HTTP_USER_AGENT} ^GetRight [OR] 
RewriteCond %{HTTP_USER_AGENT} ^BlackWidow [OR] 
RewriteCond %{HTTP_USER_AGENT} ^aHMView 
RewriteRule .* - [F] 
#FINISH PREVENT UNEXPECTED USER_AGENT STRING 

#BYPASS STRANGERS 
RewriteCond %{REQUEST_METHOD} POST 
RewriteCond %{HTTP_REFERER} !^http://www.site.com [NC] 
RewriteRule .* - [F] 
#FINISH PYPASS STRANGERS 

но правила вызывают внутреннюю ошибку 500

сервера есть какая-либо ошибка в нем? если да, то как я должен правильно писать?

спасибо,

ответ

0

Ваши правила плавник. Они работают для меня в чистом файле htaccess на ванильном сервере Apache 2.2. У вас, вероятно, нет загруженного mod_rewrite. Проверьте, что в вашем httpd.conf строка, которая выглядит примерно так:

LoadModule rewrite_module modules/mod_rewrite.so 

не закомментирован.

+0

на моем обработчике Apache 2.0 (версия: 20051115) 'mod_alias'' mod_rewrite' 'mod_so' и т. Д. Включены. Я уже могу переписать там другие правила. приведенные выше правила не работают на моем сервере. кстати, любая идея, почему \t 'RewriteCond% {REQUEST_METHOD} POST' возвращает ошибку с помощью проверочного синтаксиса' .htaccess'? благодаря, –

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