所以我想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