You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

禁止直接访问执行脚本:仅允许/news/数字形式伪静态URL访问

解决方案

你可以通过添加拦截规则来禁止直接访问 /news/index.php?post=xxx 这类请求,同时保留伪静态路径的正常解析,完整的 .htaccess 配置如下:

RewriteEngine on

# 拦截直接访问带post参数的index.php请求,返回403禁止访问
RewriteCond %{THE_REQUEST} ^GET\ /news/index\.php\?post=([0-9]+) [NC]
RewriteRule ^ - [R=403,L]

# 伪静态转发规则:将/news/数字路径映射到index.php
RewriteRule ^news/([0-9]+)/?$ /news/index.php?post=$1 [L,QSA]

规则说明:

  • 第一条规则通过%{THE_REQUEST}匹配原始请求行,确保只拦截用户直接输入的/news/index.php?post=数字请求,不会干扰伪静态规则的内部转发流程,匹配后返回403状态码禁止访问。
  • 若希望用户输入旧地址时自动跳转到伪静态路径(而非直接禁止),可将第一条规则替换为:
    RewriteCond %{THE_REQUEST} ^GET\ /news/index\.php\?post=([0-9]+) [NC]
    RewriteRule ^ /news/%1 [R=301,L]
    
    这样用户访问旧地址会被301永久重定向到对应伪静态URL,同时有助于搜索引擎更新索引。

注意事项:

  • 确保服务器已开启mod_rewrite模块。
  • 拦截规则必须放在伪静态规则之前,否则会先触发转发逻辑,无法拦截直接请求。

内容的提问来源于stack exchange,提问作者ganjo ali

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 18:32:36