.htaccess和Apache ModSecurity

时间:2016-03-13 08:53:52

标签: php apache .htaccess mod-rewrite

我有这个.htaccess

Options -Indexes

    RewriteEngine On
    RewriteBase /

    # Force to exclude the trailing slash
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} (.*)/$
    RewriteRule ^(.+)/$ $1 [R=307,L]

    # Restrict php files direct access
    # this part generate the problem
    RewriteCond %{THE_REQUEST} ^.+?\ [^?]+\.php[?\ ]
    RewriteRule \.php$ - [F] 

    # Allow any files or directories that exist to be displayed directly
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d

    RewriteRule ^(.*)$ index.php?$1 [QSA,L]

但是阿帕奇给我写了这个:

  

ModSecurity:警告。匹配"在%{tx.allowed_methods}"反对" REQUEST_METHOD"需要。 [file" /modsecurity/modsecurity_crs_30_http_policy.conf"] [line" 31"] [id" 960032"] [rev" 2"] [ msg"政策不允许使用方法"] [数据" GET"] [严重性"关键"] [ver" OWASP_CRS / 2.2.9&#34 ;] [成熟度" 9"] [准确度" 9"] [标签" OWASP_CRS / POLICY / METHOD_NOT_ALLOWED"] [标签" WASCTC / WASC-15& #34;] [tag" OWASP_TOP_10 / A6"] [tag" OWASP_AppSensor / RE1"] [tag" PCI / 12.1"]

我如何编辑我的htaccess?谢谢你们。

1 个答案:

答案 0 :(得分:0)

正如第一条评论所说,您有一条阻止您的请求的ModSecurity规则。如果您的托管服务提供商已启用' - enable-htaccess-config'在构建ModSecurity时,您可以从htaccess文件中禁用该特定规则。您可以使用类似于以下内容的内容:

<IfModule mod_security.c> SecRuleRemoveById 960032 </IfModule>

但是,如果您的提供商未启用此功能,并且您无法访问任何Apache配置文件(httpd.conf等)。然后,您必须与您的托管服务提供商联系以解决问题。遗憾