gpt4 book ai didi

php - 为什么我的自定义 404 处理程序看不到我的静态内容?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:46:03 25 4
gpt4 key购买 nike

我决定在我的项目中使用 SEO 友好的 url。这就是为什么我通过我的 404 自定义处理程序 (index.php) 发送所有请求

ErrorDocument 404 /index.php

这是我在 URI 中检查路径的地方

if(isset($_SERVER['REQUEST_URI'])){
$path_begin_expected = "/page/";
$path_begin_evaluated= substr($_SERVER['REQUEST_URI'], 0, strlen($path_begin_expected));
if($path_begin_expected == $path_begin_evaluated ){
$page = substr($_SERVER['REQUEST_URI'], strlen($path_begin_expected), strlen($_SERVER['REQUEST_URI']));
}
else {
$page = null;
}
}
else {
$page = null;
}

然后我使用 $page 来决定返回给用户什么

switch($page)
{
case 'main':
include("webapps/main/pages/main_bc.php");
break;
...other cases here
}

我也用过

Alias /page c:/work/Languator/trunk/php/htdocs/my_application/

现在,如果

$_SERVER['REQUEST_URI']

是正确的(即请求具有服务器上存在的路径)这样的请求可以正常工作

/page/home or /page/help-1 or /page/more-docs

但是当我使用这些请求时:

/page2/home or /pag/help-1 or /pagex/more-docs/

没有加载css文件或js文件或img图片。我的浏览器要求这些文件是这样的:

mydomain/page2/css/styles.css
mydomain/pag/css/styles.css
mydomain/pagex/more-docs/css/styles.css !!!

但显然这些路径不存在。

有人能解释一下这是为什么吗?我怎样才能更换

path2 into path
pag into path
pagex/more-docs into path

或者这个问题有另一种解决方案吗?

最佳答案

当您从错误文档链接到 CSS 和 JS 文件时,不应使用相对链接。使用 /http://example.com/ 开始您的 CSS 和 JS 链接。以下两项都可以接受。

 <link rel="stylesheet" href="/css/styles.css" type="text/css">
<link rel="stylesheet" href="http://example.com/css/styles.css" type="text/css">

另一种解决方案是在页面头部包含一个 base 标记,告诉浏览器如何解释所有相关链接:

<base href="http://example.com/">

关于php - 为什么我的自定义 404 处理程序看不到我的静态内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15485729/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com