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

htaccess deny access to URIs via regular expression

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

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

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

非常感谢任何帮助

使用您显示的示例,请尝试执行以下操作。 请确保在测试您的 URL 之前清除您的浏览器缓存。

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]