【问题标题】:htaccess deny access to URIs via regular expressionhtaccess 拒绝通过正则表达式访问 URI
【发布时间】:2021-06-30 14:29:45
【问题描述】:

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

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

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

非常感谢任何帮助

【问题讨论】:

    标签: .htaccess redirect mod-rewrite url-rewriting friendly-url


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 行得通!谢谢。对不起,我也想禁止使用 ^page_id=[0-9] 。我怎样才能将它合并到代码中?
    • @Matt,请尝试我的第二次编辑规则一次,如果这对您有帮助,请告诉我?
    • 不得不将“_id”添加到“^page”的末尾,但是可以,非常感谢。赞成并接受
    • @Matt,好的(看起来你的 cmets 更新了),所以你的情况变成了RewriteCond %{QUERY_STRING} ^(p|page)=[0-9]+_id$ [NC]?如果是,请确认我会编辑我的答案,干杯。
    • 嗨@RavinderSingh13 我解决的条件是RewriteEngine ON RewriteCond %{QUERY_STRING} ^(p|page_id)=[0-9]+ [NC] RewriteRule ^ - [F,L]
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-05
    • 2015-05-14
    • 2017-10-03
    • 1970-01-01
    • 1970-01-01
    • 2013-05-18
    • 1970-01-01
    相关资源
    最近更新 更多