htaccess 拒绝通过正则表达式访问 URI

问题描述

我想拒绝通过他们的数据库 ID 地址访问我的所有帖子/页面,例如/?p=1,/?p=2,... 等

我正在考虑使用 .htaccess 执行此操作,并且我认为最好使用 RewriteCond 规则来完成。我试过了,但它似乎不起作用。

RewriteEngine On
RewriteCond %{REQUEST_URI} ^/?p=*
RewriteRule ^(.*)$ - [F,L]

非常感谢任何帮助

解决方法

使用您显示的示例,请尝试以下操作。 在测试您的网址之前,请务必清除浏览器缓存。

RewriteEngine ON
RewriteCond %{QUERY_STRING} ^p=[0-9]+ [NC]
RewriteRule ^ - [F,L]

根据 OP 的评论,将 ppage= 数字匹配,然后尝试跟随。

RewriteEngine ON
RewriteCond %{QUERY_STRING} ^(p|page)=[0-9]+ [NC]
RewriteRule ^ - [F,L]