限制对 index.php 的访问 - Apache

限制对 index.php 的访问 - Apache

所以我想index.php在请求带有参数时限制对我的文件的访问。例如:

  • https://example.com?param1=value1(限制/拒绝访问)

  • https://example.com(允许访问并正常加载网站)

有什么方法可以用.htaccess文件来做到这一点吗?

任何帮助是极大的赞赏。

答案1

您可以在根文件顶部附近使用 mod_rewrite 执行如下操作.htaccess

RewriteEngine On
RewriteCond %{QUERY_STRING} ^param1=value1$
RewriteRule ^(index\.php)?$ - [F]

如果请求以下任一 URL,则将返回 403 Forbidden:

  • /?param1=value1
  • /index.php?param1=value1

请注意,这与查询字符串(URL 参数)匹配确切地如您的示例所示。其他任何内容均允许。

更新

如果存在任何参数,我该如何拒绝访问?

在这种情况下,您可以更改状况简单匹配任何事物。 那是某物, 但不是没有什么。 例如:

RewriteCond %{QUERY_STRING} .

点 ( .) 匹配任意字符。

答案2

尝试这个:

RewriteEngine On
RewriteCond %{REQUEST_URI} =^param1=.+$ 
RewriteRule ^ /errors/no.access.html

相关内容