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

あなたのルールは大丈夫です。それらは、バニラのApache 2.2サーバーの空のhtaccessファイルで機能します。おそらく mod_rewrite がロードされていません。httpd.conf で、次のような行を確認してください。

LoadModule rewrite_module modules/mod_rewrite.so

コメントアウトされていません。

于 2013-02-28T14:08:14.477 に答える
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 に答える