2013-03-18 32 views
0

我決定在我的項目中使用SEO友好的網址。這就是爲什麼我通過我的404自定義處理程序(的index.php)爲什麼我的自定義404處理程序看不到我的靜態內容?

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; 
} 

檢查路徑。然後我用$頁面來決定的地方發送的所有請求什麼返回用戶

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'] 

是正確的(即。要求有該服務器上存在的路徑)請求這樣的工作OK

/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 

或有另一種解決這個問題?

+0

看到這一點:http://stackoverflow.com/問題/ 7653869/php-if-serverrequest-uri – shnisaka 2013-03-18 20:07:55

+0

@shnisaka我無法看到上述鏈接與我的問題的任何關係。你能解釋一下你的觀點嗎? – Krzysztof 2013-03-18 20:15:55

回答

0

當您從錯誤文檔鏈接到您的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/"> 
相關問題