1

我不是 mod 重写方面的专家。我正在尝试在我的根目录的 .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

有什么错误吗?如果是,我应该如何正确写?

谢谢,

4

2 回答 2

1

尝试“基本 .htaccess 代码语法检查器和验证器” http://www.lyxx.com/freestuff/002.html或“.htaccess 验证器 v1.06” http://shop.alterlinks.com/htaccess-validator/ htaccess-validator.php

于 2013-02-28T13:38:58.657 回答
1

你的规则很好。它们在香草 Apache 2.2 服务器上的空白 htaccess 文件中为我工作。您可能没有加载 mod_rewrite。在你的 httpd.conf 中检查,看起来像这样的行:

LoadModule rewrite_module modules/mod_rewrite.so

没有被注释掉。

于 2013-02-28T14:08:14.477 回答