[英]why isn't index.php working?
我有一個index.php頁面,應該鏈接到我的其他網站。
<?php
if(!isset($_GET['page']))$page = 'home.php';
else{
$page = $_GET['page'] . ".php";
}
include("_includes/header.php");
include("_includes/navigation.php");
include("_pages/$page");
include("_includes/footer.php");
?>
這就是我的index.php的樣子。 它應該是我點擊的頁面(當我登錄導航時)並將其指向此頁面,以便標題,導航和頁腳將被重用於每個頁面。
<div id="navi">
<ul>
<li><a href="home">Home</a></li>
<li><a href="skills.php">Skills</a></li>
<li><a href="_pages/my_projects.php">Projects</a></li>
<li><a href="_pages/experience">Experience</i></a></li>
<li><a href="_pages/personal">About</a></li>
<li><a href="_pages/contact">Contact</a></li>
</ul>
</div>
根據代碼,“home”鏈接應該工作,但是它說找不到URL,因為它在我所在的目錄中尋找“home”。但是它在我的pages目錄中。 “技能”做同樣的事情。 唯一有效的是鏈接項目通過聯系,因為我指定了一個路徑。 但是,有效的鏈接不會通過我的索引頁面,因為這里不包含header.php(包含css),navigation.php和footer.php。
我做了研究,我發現我必須使用.htaccess文件和/或mod_rewrite。 有人可以請幫幫我。 我一直在尋找2-3周,什么都沒有。
你應該引用index.php,而不是家。
<div id="navi">
<ul>
<li><a href="index.php?page=home">Home</a></li>
<li><a href="skills.php">Skills</a></li>
<li><a href="_pages/my_projects.php">Projects</a></li>
<li><a href="_pages/experience">Experience</i></a></li>
<li><a href="_pages/personal">About</a></li>
<li><a href="_pages/contact">Contact</a></li>
</ul>
</div>
你的鏈接應該是:
<div id="navi">
<ul>
<li><a href="index.php?page=home">Home</a></li>
<li><a href="index.php?page=skills">Skills</a></li>
<li><a href="index.php?page=my_projects">Projects</a></li>
<li><a href="index.php?page=experience">Experience</i></a></li>
<li><a href="index.php?page=personal">About</a></li>
<li><a href="index.php?page=contact">Contact</a></li>
</ul>
</div>
它與您的Web服務器處理請求的方式密切相關。 如果您嘗試訪問不受PHP管理的網址,您將無法使用它。 通過deafult PHP只處理.php請求url(也.php5和其他一些)。
解決方案可能是寫一個重寫條件,將/ home /轉換為index.php?page = home。 假設您運行的是啟用了mod_rewrite並啟用了htaccess的Apache Web Server。
所以,假設以這種方式規范你的鏈接:
<div id="navi">
<ul>
<li><a href="/pages/home">Home</a></li>
<li><a href="/pages/skills">Skills</a></li>
<li><a href="/pages/my_projects">Projects</a></li>
<li><a href="/pages/page=experience">Experience</i></a></li>
<li><a href="/pages/page=personal">About</a></li>
<li><a href="/pages/page=contact">Contact</a></li>
</ul>
</div>
你可以像這樣寫一個.htaccess,把它放在/ pages /文件夾中:
RewriteEngine On
RewriteRule ^/pages/(.*)$ /index.php?page=$1 [QSA,L]
請注意每個對/ pages /的請求都會被重寫,所以你應該仔細編寫它們,避免重寫.css .png等等......
這會以這種方式影響您的請求:
PS也許您可能對標志P感興趣,將請求發送到index.php作為代理,但是對於更多信息,您應該參考mod_rewrite docs( http://httpd.apache.org/docs/current/mod/mod_rewrite.html )
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.