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

PHP动态页面包含机制失效,点击导航出现404错误求助

问题原因与解决方案

问题根源

你的PHP逻辑依赖$_GET["site"]参数决定加载的页面,但当前导航链接直接指向/hirek,服务器找不到对应的物理文件,因此返回404;改成/只会加载默认首页,因为没有传递site参数触发对应页面的加载逻辑。


方案1:直接修改导航链接(无需服务器配置)

把导航链接的href改为带参数的形式,让请求指向index.php并传递site值:

<li><a href="index.php?site=hirek">Hírek</a></li>
<li><a href="index.php?site=az-alapitvanyrol">Az alapítványról</a></li>

点击链接后,浏览器会请求index.php?site=hirek,PHP代码能正确获取$oldal变量,加载对应的hirek.php页面。


方案2:配置URL重写(保持简洁URL)

如果想保留/hirek这类美观URL,需要配置服务器的URL重写规则,将请求自动转发到index.php并传递site参数:

Apache服务器配置:

  1. 确保服务器已启用mod_rewrite模块(通常在Apache的httpd.conf中开启)。
  2. 在网站根目录创建.htaccess文件,添加以下规则:
RewriteEngine On
# 排除真实存在的文件和目录,避免重写静态资源
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# 将非文件/目录的请求转发到index.php,传递路径作为site参数
RewriteRule ^(.*)$ index.php?site=$1 [L]

Nginx服务器配置:

在站点的Nginx配置文件server块中添加:

location / {
    try_files $uri $uri/ /index.php?site=$uri;
}

配置完成后,访问/hirek时,服务器会自动将请求转换为index.php?site=hirek,PHP逻辑可正常处理,同时保持URL简洁。


额外检查点

确认hirek.php、az-alapitvanyrol.php等文件确实存在于网站根目录,避免include时出现文件不存在的错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 18:37:32