2015-11-02 25 views
0

我想重新組織我的網頁,而不是每個網頁有40個文件,我只使用1個通過重新編寫重定向的文件。 在我的目錄我的文件,如:使用RewriteRule重構網頁

1.PHP

2.PHP

3.php

about.php

help.php

什麼我試圖完成的是如果文件存在,就像正常(about.php,help.php)一樣傳遞它。如果它不再存在,那麼抓住頁面並動態加載它。

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /page.php?link=$1 [L] 

然後在page.php文件我有:

include($_SERVER['DOCUMENT_ROOT'].'/files/'.$_GET['link'].'.php'); 

我運行到是很拉一切問題。這將給出錯誤:

include(): Failed opening 'C:/xampp/htdocs/files/1.php.php' 

因爲它有兩個.php結尾。我可以在那裏修改文件,但是因爲他們不再使用擴展名,所有我的新鏈接都會被破壞。 當然,它不可能是'全部延伸'或'沒有延伸'的情況?

回答

0

爲什麼不檢查$_GET['link']是否包含.,並且您知道它是一個帶有擴展名的文件,然後使用第一部分。否則按原樣使用它。

if (strpos($_GET['link'], ".") !== false) { 
    $parts = explode(".",$_GET['link']); 
    $link = $parts[0]; 
}else{ 
    $link = $_GET['link']; 
} 

include($_SERVER['DOCUMENT_ROOT'].'/files/'.$link.'.php');