我的知识记录

请问Apache伪静态出现页面无法正常访问处理(1)

  1. 默认规则

    apache   RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
    • 这条规则适用于Apache采用模块化运行方式的情况。
    • 当请求URL不是目录或文件时,将所有请求重写为index.php/$1
  2. 备用规则

    apache   RewriteRule ^(.*)$ index.php [E=PATH_INFO:$1,QSA,PT,L]
    • 这条规则适用于Apache采用FastCGI运行方式的情况。
    • 当请求URL不是目录或文件时,将所有请求重写为index.php,并将路径信息存储在PATH_INFO变量中。

为什么会出现“No input file specified.”

  1. 模块化运行方式

    • Apache默认采用模块化运行方式(mod_php),在这种模式下,可以直接处理PHP脚本。
    • 默认规则适用于这种情况。
  2. FastCGI运行方式

    • 当Apache采用FastCGI模式运行PHP时,需要通过FastCGI接口与PHP通信。
    • FastCGI模式下,PATH_INFO变量需要传递给PHP脚本,否则会出现“No input file specified.”错误。

解决方案

1. 检查Apache运行模式

  1. 确认Apache运行模式
    • 查看Apache的httpd.confphp.ini配置文件,确认Apache是否采用FastCGI模式运行PHP。
    • 如果使用FastCGI模式,需要启用备用规则。

2. 修改伪静态规则

  1. 启用备用规则
    • 注释掉默认规则: apache   # RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
    • 启用备用规则: apache   RewriteRule ^(.*)$ index.php [E=PATH_INFO:$1,QSA,PT,L]

标签:apache静态文件-apache配置静态html页面-apache发布静态网页-apache服务器伪静态规则-apache 配置静态文件-

更新时间:2025-04-10 23:18:22

上一篇:请问PbootCMS模版制作:当天发布的文章显示红色的方法

下一篇:请问帝国CMS网站format_datetime()转换时间格式函数2