我做了一個ajax網站,從我的index.php
裏面的/ pages文件夾中調用php頁面,所以我在htaccess
中進行了重寫,以返回我的索引中的所有頁面,所以ajax運行良好,但點擊刷新頁面按鈕或第一次加載,功能無法找到文件,所有的時間返回404.php
頁:重寫htacces找不到文件
這是我的htaccess:
Options +FollowSymLinks
RewriteEngine On
RewriteBase/
RewriteRule ^([a-zA-Z0-9\-]*).php$ index.php?p=$1 [L]
這是我的PHP函數調用我的網頁:
<div id="ajax-container">
<?php
$d = "pages/";
if (isset($_GET['p'])) {
$p = strtolower($_GET['p']);
if (preg_match("/^[a-z0-9\-]+$/", $p) && file_exists($d . $p . ".php")) {
include $d . $p . ".php";
} else {
include $d . "404.php";
}
} else {
include $d . "home.php";
}
?>
</div>
我認爲問題來自我的重寫,因爲它重寫所有頁面的PHP,所以我認爲它也重寫我的index.php
,所以功能找不到['p']
,但我不知道,我不知道這是否是這樣如何我可以從我/pages
文件夾
你可能想在服務器文件路徑在'file_exists()'函數,嘗試定義'$ d =真實路徑(__DIR__ '/頁/');' - 你可能想添加一些健全檢查像'is_dir() '以及。 – CD001
問題留,其實我不明白爲什麼功能無法找到我的網頁,因爲它找到該文件夾,則返回404.php頁面爲什麼不能找到其他頁面 – Tiaw
噢 - 這正是是發生,你需要的標準*不是文件* *不是目錄*條件 – CD001