Php 为什么可以';我的自定义404处理程序没有看到我的静态内容吗?

Php 为什么可以';我的自定义404处理程序没有看到我的静态内容吗?,php,apache,seo,http-status-code-404,handler,Php,Apache,Seo,Http Status Code 404,Handler,我决定在我的项目中使用SEO友好的URL。这就是我通过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_

我决定在我的项目中使用SEO友好的URL。这就是我通过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/
。以下两项都可以接受

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

请看:@shnisaka我看不出上述链接与我的问题有任何关系。你能解释一下你的观点吗?
 <link rel="stylesheet" href="/css/styles.css" type="text/css">
 <link rel="stylesheet" href="http://example.com/css/styles.css" type="text/css">
<base href="http://example.com/">